{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Lambda.Types.EventSourcePosition
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Lambda.Types.EventSourcePosition
  ( EventSourcePosition
      ( ..,
        EventSourcePosition_AT_TIMESTAMP,
        EventSourcePosition_LATEST,
        EventSourcePosition_TRIM_HORIZON
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Prelude as Prelude

newtype EventSourcePosition = EventSourcePosition'
  { EventSourcePosition -> Text
fromEventSourcePosition ::
      Core.Text
  }
  deriving stock
    ( Int -> EventSourcePosition -> ShowS
[EventSourcePosition] -> ShowS
EventSourcePosition -> String
(Int -> EventSourcePosition -> ShowS)
-> (EventSourcePosition -> String)
-> ([EventSourcePosition] -> ShowS)
-> Show EventSourcePosition
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EventSourcePosition] -> ShowS
$cshowList :: [EventSourcePosition] -> ShowS
show :: EventSourcePosition -> String
$cshow :: EventSourcePosition -> String
showsPrec :: Int -> EventSourcePosition -> ShowS
$cshowsPrec :: Int -> EventSourcePosition -> ShowS
Prelude.Show,
      ReadPrec [EventSourcePosition]
ReadPrec EventSourcePosition
Int -> ReadS EventSourcePosition
ReadS [EventSourcePosition]
(Int -> ReadS EventSourcePosition)
-> ReadS [EventSourcePosition]
-> ReadPrec EventSourcePosition
-> ReadPrec [EventSourcePosition]
-> Read EventSourcePosition
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EventSourcePosition]
$creadListPrec :: ReadPrec [EventSourcePosition]
readPrec :: ReadPrec EventSourcePosition
$creadPrec :: ReadPrec EventSourcePosition
readList :: ReadS [EventSourcePosition]
$creadList :: ReadS [EventSourcePosition]
readsPrec :: Int -> ReadS EventSourcePosition
$creadsPrec :: Int -> ReadS EventSourcePosition
Prelude.Read,
      EventSourcePosition -> EventSourcePosition -> Bool
(EventSourcePosition -> EventSourcePosition -> Bool)
-> (EventSourcePosition -> EventSourcePosition -> Bool)
-> Eq EventSourcePosition
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EventSourcePosition -> EventSourcePosition -> Bool
$c/= :: EventSourcePosition -> EventSourcePosition -> Bool
== :: EventSourcePosition -> EventSourcePosition -> Bool
$c== :: EventSourcePosition -> EventSourcePosition -> Bool
Prelude.Eq,
      Eq EventSourcePosition
Eq EventSourcePosition
-> (EventSourcePosition -> EventSourcePosition -> Ordering)
-> (EventSourcePosition -> EventSourcePosition -> Bool)
-> (EventSourcePosition -> EventSourcePosition -> Bool)
-> (EventSourcePosition -> EventSourcePosition -> Bool)
-> (EventSourcePosition -> EventSourcePosition -> Bool)
-> (EventSourcePosition
    -> EventSourcePosition -> EventSourcePosition)
-> (EventSourcePosition
    -> EventSourcePosition -> EventSourcePosition)
-> Ord EventSourcePosition
EventSourcePosition -> EventSourcePosition -> Bool
EventSourcePosition -> EventSourcePosition -> Ordering
EventSourcePosition -> EventSourcePosition -> EventSourcePosition
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: EventSourcePosition -> EventSourcePosition -> EventSourcePosition
$cmin :: EventSourcePosition -> EventSourcePosition -> EventSourcePosition
max :: EventSourcePosition -> EventSourcePosition -> EventSourcePosition
$cmax :: EventSourcePosition -> EventSourcePosition -> EventSourcePosition
>= :: EventSourcePosition -> EventSourcePosition -> Bool
$c>= :: EventSourcePosition -> EventSourcePosition -> Bool
> :: EventSourcePosition -> EventSourcePosition -> Bool
$c> :: EventSourcePosition -> EventSourcePosition -> Bool
<= :: EventSourcePosition -> EventSourcePosition -> Bool
$c<= :: EventSourcePosition -> EventSourcePosition -> Bool
< :: EventSourcePosition -> EventSourcePosition -> Bool
$c< :: EventSourcePosition -> EventSourcePosition -> Bool
compare :: EventSourcePosition -> EventSourcePosition -> Ordering
$ccompare :: EventSourcePosition -> EventSourcePosition -> Ordering
$cp1Ord :: Eq EventSourcePosition
Prelude.Ord,
      (forall x. EventSourcePosition -> Rep EventSourcePosition x)
-> (forall x. Rep EventSourcePosition x -> EventSourcePosition)
-> Generic EventSourcePosition
forall x. Rep EventSourcePosition x -> EventSourcePosition
forall x. EventSourcePosition -> Rep EventSourcePosition x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep EventSourcePosition x -> EventSourcePosition
$cfrom :: forall x. EventSourcePosition -> Rep EventSourcePosition x
Prelude.Generic
    )
  deriving newtype
    ( Int -> EventSourcePosition -> Int
EventSourcePosition -> Int
(Int -> EventSourcePosition -> Int)
-> (EventSourcePosition -> Int) -> Hashable EventSourcePosition
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: EventSourcePosition -> Int
$chash :: EventSourcePosition -> Int
hashWithSalt :: Int -> EventSourcePosition -> Int
$chashWithSalt :: Int -> EventSourcePosition -> Int
Prelude.Hashable,
      EventSourcePosition -> ()
(EventSourcePosition -> ()) -> NFData EventSourcePosition
forall a. (a -> ()) -> NFData a
rnf :: EventSourcePosition -> ()
$crnf :: EventSourcePosition -> ()
Prelude.NFData,
      Text -> Either String EventSourcePosition
(Text -> Either String EventSourcePosition)
-> FromText EventSourcePosition
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String EventSourcePosition
$cfromText :: Text -> Either String EventSourcePosition
Core.FromText,
      EventSourcePosition -> Text
(EventSourcePosition -> Text) -> ToText EventSourcePosition
forall a. (a -> Text) -> ToText a
toText :: EventSourcePosition -> Text
$ctoText :: EventSourcePosition -> Text
Core.ToText,
      EventSourcePosition -> ByteString
(EventSourcePosition -> ByteString)
-> ToByteString EventSourcePosition
forall a. (a -> ByteString) -> ToByteString a
toBS :: EventSourcePosition -> ByteString
$ctoBS :: EventSourcePosition -> ByteString
Core.ToByteString,
      EventSourcePosition -> ByteStringBuilder
(EventSourcePosition -> ByteStringBuilder)
-> ToLog EventSourcePosition
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: EventSourcePosition -> ByteStringBuilder
$cbuild :: EventSourcePosition -> ByteStringBuilder
Core.ToLog,
      HeaderName -> EventSourcePosition -> [Header]
(HeaderName -> EventSourcePosition -> [Header])
-> ToHeader EventSourcePosition
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> EventSourcePosition -> [Header]
$ctoHeader :: HeaderName -> EventSourcePosition -> [Header]
Core.ToHeader,
      EventSourcePosition -> QueryString
(EventSourcePosition -> QueryString) -> ToQuery EventSourcePosition
forall a. (a -> QueryString) -> ToQuery a
toQuery :: EventSourcePosition -> QueryString
$ctoQuery :: EventSourcePosition -> QueryString
Core.ToQuery,
      Value -> Parser [EventSourcePosition]
Value -> Parser EventSourcePosition
(Value -> Parser EventSourcePosition)
-> (Value -> Parser [EventSourcePosition])
-> FromJSON EventSourcePosition
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [EventSourcePosition]
$cparseJSONList :: Value -> Parser [EventSourcePosition]
parseJSON :: Value -> Parser EventSourcePosition
$cparseJSON :: Value -> Parser EventSourcePosition
Core.FromJSON,
      FromJSONKeyFunction [EventSourcePosition]
FromJSONKeyFunction EventSourcePosition
FromJSONKeyFunction EventSourcePosition
-> FromJSONKeyFunction [EventSourcePosition]
-> FromJSONKey EventSourcePosition
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [EventSourcePosition]
$cfromJSONKeyList :: FromJSONKeyFunction [EventSourcePosition]
fromJSONKey :: FromJSONKeyFunction EventSourcePosition
$cfromJSONKey :: FromJSONKeyFunction EventSourcePosition
Core.FromJSONKey,
      [EventSourcePosition] -> Encoding
[EventSourcePosition] -> Value
EventSourcePosition -> Encoding
EventSourcePosition -> Value
(EventSourcePosition -> Value)
-> (EventSourcePosition -> Encoding)
-> ([EventSourcePosition] -> Value)
-> ([EventSourcePosition] -> Encoding)
-> ToJSON EventSourcePosition
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [EventSourcePosition] -> Encoding
$ctoEncodingList :: [EventSourcePosition] -> Encoding
toJSONList :: [EventSourcePosition] -> Value
$ctoJSONList :: [EventSourcePosition] -> Value
toEncoding :: EventSourcePosition -> Encoding
$ctoEncoding :: EventSourcePosition -> Encoding
toJSON :: EventSourcePosition -> Value
$ctoJSON :: EventSourcePosition -> Value
Core.ToJSON,
      ToJSONKeyFunction [EventSourcePosition]
ToJSONKeyFunction EventSourcePosition
ToJSONKeyFunction EventSourcePosition
-> ToJSONKeyFunction [EventSourcePosition]
-> ToJSONKey EventSourcePosition
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [EventSourcePosition]
$ctoJSONKeyList :: ToJSONKeyFunction [EventSourcePosition]
toJSONKey :: ToJSONKeyFunction EventSourcePosition
$ctoJSONKey :: ToJSONKeyFunction EventSourcePosition
Core.ToJSONKey,
      [Node] -> Either String EventSourcePosition
([Node] -> Either String EventSourcePosition)
-> FromXML EventSourcePosition
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String EventSourcePosition
$cparseXML :: [Node] -> Either String EventSourcePosition
Core.FromXML,
      EventSourcePosition -> XML
(EventSourcePosition -> XML) -> ToXML EventSourcePosition
forall a. (a -> XML) -> ToXML a
toXML :: EventSourcePosition -> XML
$ctoXML :: EventSourcePosition -> XML
Core.ToXML
    )

pattern EventSourcePosition_AT_TIMESTAMP :: EventSourcePosition
pattern $bEventSourcePosition_AT_TIMESTAMP :: EventSourcePosition
$mEventSourcePosition_AT_TIMESTAMP :: forall r. EventSourcePosition -> (Void# -> r) -> (Void# -> r) -> r
EventSourcePosition_AT_TIMESTAMP = EventSourcePosition' "AT_TIMESTAMP"

pattern EventSourcePosition_LATEST :: EventSourcePosition
pattern $bEventSourcePosition_LATEST :: EventSourcePosition
$mEventSourcePosition_LATEST :: forall r. EventSourcePosition -> (Void# -> r) -> (Void# -> r) -> r
EventSourcePosition_LATEST = EventSourcePosition' "LATEST"

pattern EventSourcePosition_TRIM_HORIZON :: EventSourcePosition
pattern $bEventSourcePosition_TRIM_HORIZON :: EventSourcePosition
$mEventSourcePosition_TRIM_HORIZON :: forall r. EventSourcePosition -> (Void# -> r) -> (Void# -> r) -> r
EventSourcePosition_TRIM_HORIZON = EventSourcePosition' "TRIM_HORIZON"

{-# COMPLETE
  EventSourcePosition_AT_TIMESTAMP,
  EventSourcePosition_LATEST,
  EventSourcePosition_TRIM_HORIZON,
  EventSourcePosition'
  #-}