{-# LANGUAGE CPP #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE StandaloneDeriving #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module AWSLambda.Orphans where import Data.Aeson import Data.Monoid ((<>)) import qualified Data.Text as Text import Network.AWS.Data.Text (fromText) import qualified Network.AWS.S3 as S3 #if !MIN_VERSION_amazonka_core(1,6,0) deriving instance FromJSON S3.BucketName #endif deriving instance FromJSON S3.ObjectKey deriving instance FromJSON S3.ObjectVersionId instance FromJSON S3.ETag where parseJSON :: Value -> Parser ETag parseJSON = String -> (Text -> Parser ETag) -> Value -> Parser ETag forall a. String -> (Text -> Parser a) -> Value -> Parser a withText String "ETag" ((Text -> Parser ETag) -> Value -> Parser ETag) -> (Text -> Parser ETag) -> Value -> Parser ETag forall a b. (a -> b) -> a -> b $ (String -> Parser ETag) -> (ETag -> Parser ETag) -> Either String ETag -> Parser ETag forall a c b. (a -> c) -> (b -> c) -> Either a b -> c either String -> Parser ETag forall (m :: * -> *) a. MonadFail m => String -> m a fail ETag -> Parser ETag forall (m :: * -> *) a. Monad m => a -> m a return (Either String ETag -> Parser ETag) -> (Text -> Either String ETag) -> Text -> Parser ETag forall b c a. (b -> c) -> (a -> b) -> a -> c . Text -> Either String ETag forall a. FromText a => Text -> Either String a fromText instance FromJSON S3.Event where parseJSON :: Value -> Parser Event parseJSON = String -> (Text -> Parser Event) -> Value -> Parser Event forall a. String -> (Text -> Parser a) -> Value -> Parser a withText String "Event" ((Text -> Parser Event) -> Value -> Parser Event) -> (Text -> Parser Event) -> Value -> Parser Event forall a b. (a -> b) -> a -> b $ (String -> Parser Event) -> (Event -> Parser Event) -> Either String Event -> Parser Event forall a c b. (a -> c) -> (b -> c) -> Either a b -> c either String -> Parser Event forall (m :: * -> *) a. MonadFail m => String -> m a fail Event -> Parser Event forall (m :: * -> *) a. Monad m => a -> m a return (Either String Event -> Parser Event) -> (Text -> Either String Event) -> Text -> Parser Event forall b c a. (b -> c) -> (a -> b) -> a -> c . Text -> Either String Event forall a. FromText a => Text -> Either String a fromText (Text -> Either String Event) -> (Text -> Text) -> Text -> Either String Event forall b c a. (b -> c) -> (a -> b) -> a -> c . Text -> Text addS3Prefix where s3Prefix :: Text s3Prefix = Text "s3:" addS3Prefix :: Text -> Text addS3Prefix Text s = if Text s3Prefix Text -> Text -> Bool `Text.isPrefixOf` Text s then Text s else Text s3Prefix Text -> Text -> Text forall a. Semigroup a => a -> a -> a <> Text s