{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingStrategies #-}

module Hercules.API.GitLab.InstallationBuilder where

import Data.OpenApi qualified as O3
import Hercules.API.Error (Error)
import Hercules.API.Forge.SimpleForge (SimpleForge)
import Hercules.API.Prelude

data InstallationBuilder = InstallationBuilder
  { InstallationBuilder -> Id InstallationBuilder
id :: Id InstallationBuilder,
    InstallationBuilder -> Text
gitlabURL :: Text,
    InstallationBuilder -> Text
name :: Text,
    InstallationBuilder -> Text
displayName :: Text,
    InstallationBuilder -> Maybe SimpleForge
forge :: Maybe SimpleForge,
    InstallationBuilder -> [Error]
errors :: [Error]
  }
  deriving ((forall x. InstallationBuilder -> Rep InstallationBuilder x)
-> (forall x. Rep InstallationBuilder x -> InstallationBuilder)
-> Generic InstallationBuilder
forall x. Rep InstallationBuilder x -> InstallationBuilder
forall x. InstallationBuilder -> Rep InstallationBuilder x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. InstallationBuilder -> Rep InstallationBuilder x
from :: forall x. InstallationBuilder -> Rep InstallationBuilder x
$cto :: forall x. Rep InstallationBuilder x -> InstallationBuilder
to :: forall x. Rep InstallationBuilder x -> InstallationBuilder
Generic, Int -> InstallationBuilder -> ShowS
[InstallationBuilder] -> ShowS
InstallationBuilder -> String
(Int -> InstallationBuilder -> ShowS)
-> (InstallationBuilder -> String)
-> ([InstallationBuilder] -> ShowS)
-> Show InstallationBuilder
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InstallationBuilder -> ShowS
showsPrec :: Int -> InstallationBuilder -> ShowS
$cshow :: InstallationBuilder -> String
show :: InstallationBuilder -> String
$cshowList :: [InstallationBuilder] -> ShowS
showList :: [InstallationBuilder] -> ShowS
Show, InstallationBuilder -> InstallationBuilder -> Bool
(InstallationBuilder -> InstallationBuilder -> Bool)
-> (InstallationBuilder -> InstallationBuilder -> Bool)
-> Eq InstallationBuilder
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InstallationBuilder -> InstallationBuilder -> Bool
== :: InstallationBuilder -> InstallationBuilder -> Bool
$c/= :: InstallationBuilder -> InstallationBuilder -> Bool
/= :: InstallationBuilder -> InstallationBuilder -> Bool
Eq)
  deriving anyclass (InstallationBuilder -> ()
(InstallationBuilder -> ()) -> NFData InstallationBuilder
forall a. (a -> ()) -> NFData a
$crnf :: InstallationBuilder -> ()
rnf :: InstallationBuilder -> ()
NFData, [InstallationBuilder] -> Value
[InstallationBuilder] -> Encoding
InstallationBuilder -> Value
InstallationBuilder -> Encoding
(InstallationBuilder -> Value)
-> (InstallationBuilder -> Encoding)
-> ([InstallationBuilder] -> Value)
-> ([InstallationBuilder] -> Encoding)
-> ToJSON InstallationBuilder
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: InstallationBuilder -> Value
toJSON :: InstallationBuilder -> Value
$ctoEncoding :: InstallationBuilder -> Encoding
toEncoding :: InstallationBuilder -> Encoding
$ctoJSONList :: [InstallationBuilder] -> Value
toJSONList :: [InstallationBuilder] -> Value
$ctoEncodingList :: [InstallationBuilder] -> Encoding
toEncodingList :: [InstallationBuilder] -> Encoding
ToJSON, Value -> Parser [InstallationBuilder]
Value -> Parser InstallationBuilder
(Value -> Parser InstallationBuilder)
-> (Value -> Parser [InstallationBuilder])
-> FromJSON InstallationBuilder
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser InstallationBuilder
parseJSON :: Value -> Parser InstallationBuilder
$cparseJSONList :: Value -> Parser [InstallationBuilder]
parseJSONList :: Value -> Parser [InstallationBuilder]
FromJSON, Proxy InstallationBuilder
-> Declare (Definitions Schema) NamedSchema
(Proxy InstallationBuilder
 -> Declare (Definitions Schema) NamedSchema)
-> ToSchema InstallationBuilder
forall a.
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy InstallationBuilder
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy InstallationBuilder
-> Declare (Definitions Schema) NamedSchema
ToSchema, Typeable InstallationBuilder
Typeable InstallationBuilder
-> (Proxy InstallationBuilder
    -> Declare (Definitions Schema) NamedSchema)
-> ToSchema InstallationBuilder
Proxy InstallationBuilder
-> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a
-> (Proxy a -> Declare (Definitions Schema) NamedSchema)
-> ToSchema a
$cdeclareNamedSchema :: Proxy InstallationBuilder
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy InstallationBuilder
-> Declare (Definitions Schema) NamedSchema
O3.ToSchema)

data InstallationBuilders = InstallationBuilders
  { InstallationBuilders -> [InstallationBuilder]
items :: [InstallationBuilder]
  }
  deriving ((forall x. InstallationBuilders -> Rep InstallationBuilders x)
-> (forall x. Rep InstallationBuilders x -> InstallationBuilders)
-> Generic InstallationBuilders
forall x. Rep InstallationBuilders x -> InstallationBuilders
forall x. InstallationBuilders -> Rep InstallationBuilders x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. InstallationBuilders -> Rep InstallationBuilders x
from :: forall x. InstallationBuilders -> Rep InstallationBuilders x
$cto :: forall x. Rep InstallationBuilders x -> InstallationBuilders
to :: forall x. Rep InstallationBuilders x -> InstallationBuilders
Generic, Int -> InstallationBuilders -> ShowS
[InstallationBuilders] -> ShowS
InstallationBuilders -> String
(Int -> InstallationBuilders -> ShowS)
-> (InstallationBuilders -> String)
-> ([InstallationBuilders] -> ShowS)
-> Show InstallationBuilders
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InstallationBuilders -> ShowS
showsPrec :: Int -> InstallationBuilders -> ShowS
$cshow :: InstallationBuilders -> String
show :: InstallationBuilders -> String
$cshowList :: [InstallationBuilders] -> ShowS
showList :: [InstallationBuilders] -> ShowS
Show, InstallationBuilders -> InstallationBuilders -> Bool
(InstallationBuilders -> InstallationBuilders -> Bool)
-> (InstallationBuilders -> InstallationBuilders -> Bool)
-> Eq InstallationBuilders
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InstallationBuilders -> InstallationBuilders -> Bool
== :: InstallationBuilders -> InstallationBuilders -> Bool
$c/= :: InstallationBuilders -> InstallationBuilders -> Bool
/= :: InstallationBuilders -> InstallationBuilders -> Bool
Eq)
  deriving anyclass (InstallationBuilders -> ()
(InstallationBuilders -> ()) -> NFData InstallationBuilders
forall a. (a -> ()) -> NFData a
$crnf :: InstallationBuilders -> ()
rnf :: InstallationBuilders -> ()
NFData, [InstallationBuilders] -> Value
[InstallationBuilders] -> Encoding
InstallationBuilders -> Value
InstallationBuilders -> Encoding
(InstallationBuilders -> Value)
-> (InstallationBuilders -> Encoding)
-> ([InstallationBuilders] -> Value)
-> ([InstallationBuilders] -> Encoding)
-> ToJSON InstallationBuilders
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: InstallationBuilders -> Value
toJSON :: InstallationBuilders -> Value
$ctoEncoding :: InstallationBuilders -> Encoding
toEncoding :: InstallationBuilders -> Encoding
$ctoJSONList :: [InstallationBuilders] -> Value
toJSONList :: [InstallationBuilders] -> Value
$ctoEncodingList :: [InstallationBuilders] -> Encoding
toEncodingList :: [InstallationBuilders] -> Encoding
ToJSON, Value -> Parser [InstallationBuilders]
Value -> Parser InstallationBuilders
(Value -> Parser InstallationBuilders)
-> (Value -> Parser [InstallationBuilders])
-> FromJSON InstallationBuilders
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser InstallationBuilders
parseJSON :: Value -> Parser InstallationBuilders
$cparseJSONList :: Value -> Parser [InstallationBuilders]
parseJSONList :: Value -> Parser [InstallationBuilders]
FromJSON, Proxy InstallationBuilders
-> Declare (Definitions Schema) NamedSchema
(Proxy InstallationBuilders
 -> Declare (Definitions Schema) NamedSchema)
-> ToSchema InstallationBuilders
forall a.
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy InstallationBuilders
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy InstallationBuilders
-> Declare (Definitions Schema) NamedSchema
ToSchema, Typeable InstallationBuilders
Typeable InstallationBuilders
-> (Proxy InstallationBuilders
    -> Declare (Definitions Schema) NamedSchema)
-> ToSchema InstallationBuilders
Proxy InstallationBuilders
-> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a
-> (Proxy a -> Declare (Definitions Schema) NamedSchema)
-> ToSchema a
$cdeclareNamedSchema :: Proxy InstallationBuilders
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy InstallationBuilders
-> Declare (Definitions Schema) NamedSchema
O3.ToSchema)