{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} module Database.Bloodhound.Internal.Versions.Common.Types.PointInTime where import Database.Bloodhound.Internal.Utils.Imports data PointInTime = PointInTime { PointInTime -> Text pointInTimeId :: Text, PointInTime -> Text pointInTimeKeepAlive :: Text } deriving stock (PointInTime -> PointInTime -> Bool (PointInTime -> PointInTime -> Bool) -> (PointInTime -> PointInTime -> Bool) -> Eq PointInTime forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: PointInTime -> PointInTime -> Bool == :: PointInTime -> PointInTime -> Bool $c/= :: PointInTime -> PointInTime -> Bool /= :: PointInTime -> PointInTime -> Bool Eq, Int -> PointInTime -> ShowS [PointInTime] -> ShowS PointInTime -> String (Int -> PointInTime -> ShowS) -> (PointInTime -> String) -> ([PointInTime] -> ShowS) -> Show PointInTime forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> PointInTime -> ShowS showsPrec :: Int -> PointInTime -> ShowS $cshow :: PointInTime -> String show :: PointInTime -> String $cshowList :: [PointInTime] -> ShowS showList :: [PointInTime] -> ShowS Show) instance ToJSON PointInTime where toJSON :: PointInTime -> Value toJSON PointInTime {Text pointInTimeId :: PointInTime -> Text pointInTimeKeepAlive :: PointInTime -> Text pointInTimeId :: Text pointInTimeKeepAlive :: Text ..} = [Pair] -> Value object [ Key "id" Key -> Text -> Pair forall v. ToJSON v => Key -> v -> Pair forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv .= Text pointInTimeId, Key "keep_alive" Key -> Text -> Pair forall v. ToJSON v => Key -> v -> Pair forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv .= Text pointInTimeKeepAlive ] instance FromJSON PointInTime where parseJSON :: Value -> Parser PointInTime parseJSON (Object Object o) = Text -> Text -> PointInTime PointInTime (Text -> Text -> PointInTime) -> Parser Text -> Parser (Text -> PointInTime) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Object o Object -> Key -> Parser Text forall a. FromJSON a => Object -> Key -> Parser a .: Key "id" Parser (Text -> PointInTime) -> Parser Text -> Parser PointInTime forall a b. Parser (a -> b) -> Parser a -> Parser b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Object o Object -> Key -> Parser Text forall a. FromJSON a => Object -> Key -> Parser a .: Key "keep_alive" parseJSON Value x = String -> Value -> Parser PointInTime forall a. String -> Value -> Parser a typeMismatch String "PointInTime" Value x pointInTimeIdLens :: Lens' PointInTime Text pointInTimeIdLens :: Lens' PointInTime Text pointInTimeIdLens = (PointInTime -> Text) -> (PointInTime -> Text -> PointInTime) -> Lens' PointInTime Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b lens PointInTime -> Text pointInTimeId (\PointInTime x Text y -> PointInTime x {pointInTimeId = y}) pointInTimeKeepAliveLens :: Lens' PointInTime Text pointInTimeKeepAliveLens :: Lens' PointInTime Text pointInTimeKeepAliveLens = (PointInTime -> Text) -> (PointInTime -> Text -> PointInTime) -> Lens' PointInTime Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b lens PointInTime -> Text pointInTimeKeepAlive (\PointInTime x Text y -> PointInTime x {pointInTimeKeepAlive = y})