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

module Hercules.API.State.StateLockAcquireResponse where

import Data.OpenApi qualified as O3
import Hercules.API.Prelude
import Hercules.API.State.StateLockLease (StateLockLease)

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

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

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