name: amazonka-mtl
version: 0.1.1.2
maintainer: Freckle Education
category: Utils
github: freckle/amazonka-mtl
synopsis: MTL-style type-class and deriving-via newtypes for Amazonka
description: |
This package allows incorporation of AWS actions into any MTL-style function,
> import Amazonka.Data.Text (ToText(..))
> import Amazonka.S3.ListObjects
> import Amazonka.S3.Types.Object
> import Blammo.Logging
> import Conduit
> import Control.Lens hiding ((.=))
> import Control.Monad.AWS as AWS
>
> someAction
> :: ( MonadIO m
> , MonadLogger m
> , MonadAWS m
> , MonadReader env m
> , HasSettings env
> )
> => m ()
> someAction = do
> Settings {..} <- view settingsL
>
> keys <-
> runConduit
> $ paginate (newListObjects settingsBucketName)
> .| concatMapC (^. listObjectsResponse_contents)
> .| concatC
> .| mapC (^. object_key . to toText)
> .| iterMC (\k -> logDebug $ k :# [])
> .| sinkList
>
> logInfo $ "Bucket contents" :# ["keys" .= keys]
This package also provides a number of options for execution:
* Through a concrete transformer: "Control.Monad.AWS.EnvT"
* Through your own reader env and deriving-via: "Control.Monad.AWS.ViaReader"
This package also provides mechanisms for mocking AWS in tests:
* Through a concrete transformer: "Control.Monad.AWS.MockT"
* Through your own reader env and deriving-via: "Control.Monad.AWS.ViaMock"
Please see individual module documentation for all the details.
extra-doc-files:
- README.md
- CHANGELOG.md
extra-source-files:
- package.yaml
ghc-options:
- -Weverything
- -Wno-all-missed-specialisations
- -Wno-missed-specialisations
- -Wno-missing-exported-signatures
- -Wno-missing-import-lists
- -Wno-missing-local-signatures
- -Wno-monomorphism-restriction
- -Wno-safe
- -Wno-unsafe
when:
- condition: impl(ghc >= 9.2)
ghc-options:
- -Wno-missing-kind-signatures
- condition: impl(ghc >= 8.10)
ghc-options:
- -Wno-missing-safe-haskell-mode
- -Wno-prepositive-qualified-module
dependencies:
- base < 5
default-extensions:
- BangPatterns
- DataKinds
- DeriveAnyClass
- DeriveFoldable
- DeriveFunctor
- DeriveGeneric
- DeriveLift
- DeriveTraversable
- DerivingStrategies
- FlexibleContexts
- FlexibleInstances
- GADTs
- GeneralizedNewtypeDeriving
- LambdaCase
- MultiParamTypeClasses
- NoImplicitPrelude
- NoMonomorphismRestriction
- OverloadedStrings
- RankNTypes
- RecordWildCards
- ScopedTypeVariables
- StandaloneDeriving
- TypeApplications
- TypeFamilies
library:
source-dirs: library
dependencies:
- amazonka
- amazonka-core
- conduit
- lens
- monad-logger
- mtl
- resourcet
- unliftio-core
tests:
spec:
main: Spec.hs
source-dirs: tests
ghc-options: -threaded -rtsopts "-with-rtsopts=-N"
dependencies:
- amazonka-core
- amazonka-mtl
- amazonka-s3
- hspec
- lens
- text
- time
readme:
main: README.lhs
ghc-options: -pgmL markdown-unlit
dependencies:
- Blammo
- amazonka-core
- amazonka-mtl
- amazonka-s3
- conduit
- lens
- markdown-unlit
- mtl