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

module Hercules.API.Organizations.CreateOrganization where

import Data.OpenApi qualified as O3
import Hercules.API.Accounts.Account (Account)
import Hercules.API.Prelude

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