aws 0.20 → 0.21
raw patch · 6 files changed
+22/−7 lines, 6 filesdep ~http-client-tlsPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: http-client-tls
API changes (from Hackage documentation)
- Aws.Core: instance (GHC.Show.Show a, GHC.Show.Show m) => GHC.Show.Show (Aws.Core.Response m a)
- Aws.Core: instance GHC.Exception.Exception Aws.Core.FormException
- Aws.Core: instance GHC.Exception.Exception Aws.Core.HeaderException
- Aws.Core: instance GHC.Exception.Exception Aws.Core.NoCredentialsException
- Aws.Core: instance GHC.Exception.Exception Aws.Core.XmlException
- Aws.DynamoDb.Core: instance Aws.DynamoDb.Core.DynSize a => Aws.DynamoDb.Core.DynSize (GHC.Base.Maybe a)
- Aws.DynamoDb.Core: instance Data.Semigroup.Semigroup (Aws.DynamoDb.Core.Parser a)
- Aws.DynamoDb.Core: instance Data.Semigroup.Semigroup Aws.DynamoDb.Core.DdbResponse
- Aws.DynamoDb.Core: instance GHC.Exception.Exception Aws.DynamoDb.Core.DdbError
- Aws.DynamoDb.Core: instance GHC.Exception.Exception Aws.DynamoDb.Core.DdbLibraryError
- Aws.Ec2.InstanceMetadata: instance GHC.Exception.Exception Aws.Ec2.InstanceMetadata.InstanceMetadataException
- Aws.Iam.Core: instance Data.Semigroup.Semigroup Aws.Iam.Core.IamMetadata
- Aws.Iam.Core: instance GHC.Exception.Exception Aws.Iam.Core.IamError
- Aws.S3.Core: instance Data.Semigroup.Semigroup Aws.S3.Core.S3Metadata
- Aws.S3.Core: instance GHC.Exception.Exception Aws.S3.Core.S3Error
- Aws.Ses.Core: instance Aws.Ses.Core.SesAsQuery a => Aws.Ses.Core.SesAsQuery (GHC.Base.Maybe a)
- Aws.Ses.Core: instance Data.Semigroup.Semigroup Aws.Ses.Core.Destination
- Aws.Ses.Core: instance Data.Semigroup.Semigroup Aws.Ses.Core.SesMetadata
- Aws.Ses.Core: instance GHC.Exception.Exception Aws.Ses.Core.SesError
- Aws.SimpleDb.Core: instance Data.Semigroup.Semigroup Aws.SimpleDb.Core.SdbMetadata
- Aws.SimpleDb.Core: instance GHC.Exception.Exception Aws.SimpleDb.Core.SdbError
- Aws.Sqs.Core: instance Data.Semigroup.Semigroup Aws.Sqs.Core.SqsMetadata
- Aws.Sqs.Core: instance GHC.Exception.Exception Aws.Sqs.Core.SqsError
+ Aws.Core: -- preferences.
+ Aws.Core: -- type for each AWS service.
+ Aws.Core: -- | Additional information, like API endpoints and service-specific
+ Aws.Core: instance (GHC.Show.Show m, GHC.Show.Show a) => GHC.Show.Show (Aws.Core.Response m a)
+ Aws.Core: instance GHC.Exception.Type.Exception Aws.Core.FormException
+ Aws.Core: instance GHC.Exception.Type.Exception Aws.Core.HeaderException
+ Aws.Core: instance GHC.Exception.Type.Exception Aws.Core.NoCredentialsException
+ Aws.Core: instance GHC.Exception.Type.Exception Aws.Core.XmlException
+ Aws.DynamoDb.Core: -- to?
+ Aws.DynamoDb.Core: -- | Which of the <a>DynData</a> instances does this data type directly map
+ Aws.DynamoDb.Core: instance Aws.DynamoDb.Core.DynSize a => Aws.DynamoDb.Core.DynSize (GHC.Maybe.Maybe a)
+ Aws.DynamoDb.Core: instance GHC.Base.Semigroup (Aws.DynamoDb.Core.Parser a)
+ Aws.DynamoDb.Core: instance GHC.Base.Semigroup Aws.DynamoDb.Core.DdbResponse
+ Aws.DynamoDb.Core: instance GHC.Exception.Type.Exception Aws.DynamoDb.Core.DdbError
+ Aws.DynamoDb.Core: instance GHC.Exception.Type.Exception Aws.DynamoDb.Core.DdbLibraryError
+ Aws.Ec2.InstanceMetadata: instance GHC.Exception.Type.Exception Aws.Ec2.InstanceMetadata.InstanceMetadataException
+ Aws.Iam.Core: instance GHC.Base.Semigroup Aws.Iam.Core.IamMetadata
+ Aws.Iam.Core: instance GHC.Exception.Type.Exception Aws.Iam.Core.IamError
+ Aws.S3.Core: instance GHC.Base.Semigroup Aws.S3.Core.S3Metadata
+ Aws.S3.Core: instance GHC.Exception.Type.Exception Aws.S3.Core.S3Error
+ Aws.Ses.Core: instance Aws.Ses.Core.SesAsQuery a => Aws.Ses.Core.SesAsQuery (GHC.Maybe.Maybe a)
+ Aws.Ses.Core: instance GHC.Base.Semigroup Aws.Ses.Core.Destination
+ Aws.Ses.Core: instance GHC.Base.Semigroup Aws.Ses.Core.SesMetadata
+ Aws.Ses.Core: instance GHC.Exception.Type.Exception Aws.Ses.Core.SesError
+ Aws.SimpleDb.Core: instance GHC.Base.Semigroup Aws.SimpleDb.Core.SdbMetadata
+ Aws.SimpleDb.Core: instance GHC.Exception.Type.Exception Aws.SimpleDb.Core.SdbError
+ Aws.Sqs.Core: instance GHC.Base.Semigroup Aws.Sqs.Core.SqsMetadata
+ Aws.Sqs.Core: instance GHC.Exception.Type.Exception Aws.Sqs.Core.SqsError
- Aws: aws :: (Transaction r a) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO (Response (ResponseMetadata a) a)
+ Aws: aws :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO (Response (ResponseMetadata a) a)
- Aws: awsIteratedSource :: (IteratedTransaction r a) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> Producer (ResourceT IO) (Response (ResponseMetadata a) a)
+ Aws: awsIteratedSource :: IteratedTransaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> Producer (ResourceT IO) (Response (ResponseMetadata a) a)
- Aws: awsRef :: (Transaction r a) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> IORef (ResponseMetadata a) -> r -> ResourceT IO a
+ Aws: awsRef :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> IORef (ResponseMetadata a) -> r -> ResourceT IO a
- Aws: pureAws :: (Transaction r a) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO a
+ Aws: pureAws :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO a
- Aws: type family MemoryResponse resp :: *;
+ Aws: type family ServiceConfiguration request :: * -> *
- Aws.Aws: aws :: (Transaction r a) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO (Response (ResponseMetadata a) a)
+ Aws.Aws: aws :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO (Response (ResponseMetadata a) a)
- Aws.Aws: awsIteratedSource :: (IteratedTransaction r a) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> Producer (ResourceT IO) (Response (ResponseMetadata a) a)
+ Aws.Aws: awsIteratedSource :: IteratedTransaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> Producer (ResourceT IO) (Response (ResponseMetadata a) a)
- Aws.Aws: awsRef :: (Transaction r a) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> IORef (ResponseMetadata a) -> r -> ResourceT IO a
+ Aws.Aws: awsRef :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> IORef (ResponseMetadata a) -> r -> ResourceT IO a
- Aws.Aws: pureAws :: (Transaction r a) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO a
+ Aws.Aws: pureAws :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO a
- Aws.Core: SignedQuery :: !Method -> !Protocol -> !ByteString -> !Int -> !ByteString -> !Query -> !(Maybe UTCTime) -> !(Maybe (IO ByteString)) -> !(Maybe ByteString) -> !(Maybe (Digest MD5)) -> !RequestHeaders -> !RequestHeaders -> !(Maybe RequestBody) -> !ByteString -> SignedQuery
+ Aws.Core: SignedQuery :: !Method -> !Protocol -> !ByteString -> !Int -> !ByteString -> !Query -> !Maybe UTCTime -> !Maybe (IO ByteString) -> !Maybe ByteString -> !Maybe (Digest MD5) -> !RequestHeaders -> !RequestHeaders -> !Maybe RequestBody -> !ByteString -> SignedQuery
- Aws.Core: [sqAuthorization] :: SignedQuery -> !(Maybe (IO ByteString))
+ Aws.Core: [sqAuthorization] :: SignedQuery -> !Maybe (IO ByteString)
- Aws.Core: [sqBody] :: SignedQuery -> !(Maybe RequestBody)
+ Aws.Core: [sqBody] :: SignedQuery -> !Maybe RequestBody
- Aws.Core: [sqContentMd5] :: SignedQuery -> !(Maybe (Digest MD5))
+ Aws.Core: [sqContentMd5] :: SignedQuery -> !Maybe (Digest MD5)
- Aws.Core: [sqContentType] :: SignedQuery -> !(Maybe ByteString)
+ Aws.Core: [sqContentType] :: SignedQuery -> !Maybe ByteString
- Aws.Core: [sqDate] :: SignedQuery -> !(Maybe UTCTime)
+ Aws.Core: [sqDate] :: SignedQuery -> !Maybe UTCTime
- Aws.Core: xmlCursorConsumer :: (Monoid m) => (Cursor -> Response m a) -> IORef m -> HTTPResponseConsumer a
+ Aws.Core: xmlCursorConsumer :: Monoid m => (Cursor -> Response m a) -> IORef m -> HTTPResponseConsumer a
- Aws.DynamoDb.Core: DBinSet :: (Set ByteString) -> DValue
+ Aws.DynamoDb.Core: DBinSet :: Set ByteString -> DValue
- Aws.DynamoDb.Core: DBoolSet :: (Set Bool) -> DValue
+ Aws.DynamoDb.Core: DBoolSet :: Set Bool -> DValue
- Aws.DynamoDb.Core: DList :: (Vector DValue) -> DValue
+ Aws.DynamoDb.Core: DList :: Vector DValue -> DValue
- Aws.DynamoDb.Core: DMap :: (Map Text DValue) -> DValue
+ Aws.DynamoDb.Core: DMap :: Map Text DValue -> DValue
- Aws.DynamoDb.Core: DNumSet :: (Set Scientific) -> DValue
+ Aws.DynamoDb.Core: DNumSet :: Set Scientific -> DValue
- Aws.DynamoDb.Core: DStringSet :: (Set Text) -> DValue
+ Aws.DynamoDb.Core: DStringSet :: Set Text -> DValue
- Aws.DynamoDb.Core: getAttr' :: forall a. (DynVal a) => Text -> Item -> Parser (Maybe a)
+ Aws.DynamoDb.Core: getAttr' :: forall a. DynVal a => Text -> Item -> Parser (Maybe a)
- Aws.Iam.Commands.CreateAccessKey: CreateAccessKey :: (Maybe Text) -> CreateAccessKey
+ Aws.Iam.Commands.CreateAccessKey: CreateAccessKey :: Maybe Text -> CreateAccessKey
- Aws.Iam.Commands.GetUser: GetUser :: (Maybe Text) -> GetUser
+ Aws.Iam.Commands.GetUser: GetUser :: Maybe Text -> GetUser
- Aws.Iam.Internal: (<>) :: Monoid m => m -> m -> m
+ Aws.Iam.Internal: (<>) :: Semigroup a => a -> a -> a
- Aws.S3.Commands.GetObject: GetObjectMemoryResponse :: ObjectMetadata -> (Response ByteString) -> GetObjectMemoryResponse
+ Aws.S3.Commands.GetObject: GetObjectMemoryResponse :: ObjectMetadata -> Response ByteString -> GetObjectMemoryResponse
- Aws.S3.Commands.HeadObject: HeadObjectMemoryResponse :: (Maybe ObjectMetadata) -> HeadObjectMemoryResponse
+ Aws.S3.Commands.HeadObject: HeadObjectMemoryResponse :: Maybe ObjectMetadata -> HeadObjectMemoryResponse
- Aws.S3.Commands.Multipart: CompleteMultipartUploadResponse :: !Text -> !Bucket -> !Text -> !Text -> !(Maybe Text) -> CompleteMultipartUploadResponse
+ Aws.S3.Commands.Multipart: CompleteMultipartUploadResponse :: !Text -> !Bucket -> !Text -> !Text -> !Maybe Text -> CompleteMultipartUploadResponse
- Aws.S3.Commands.Multipart: [cmurVersionId] :: CompleteMultipartUploadResponse -> !(Maybe Text)
+ Aws.S3.Commands.Multipart: [cmurVersionId] :: CompleteMultipartUploadResponse -> !Maybe Text
- Aws.S3.Commands.Multipart: chunkedConduit :: (MonadResource m) => Integer -> Conduit ByteString m ByteString
+ Aws.S3.Commands.Multipart: chunkedConduit :: MonadResource m => Integer -> Conduit ByteString m ByteString
- Aws.S3.Core: UserInfo :: CanonicalUserId -> Text -> UserInfo
+ Aws.S3.Core: UserInfo :: CanonicalUserId -> Maybe Text -> UserInfo
- Aws.S3.Core: [userDisplayName] :: UserInfo -> Text
+ Aws.S3.Core: [userDisplayName] :: UserInfo -> Maybe Text
- Aws.Sqs.Commands.Message: Message :: !Text -> !ReceiptHandle -> !Text -> Text -> ![(MessageAttribute, Text)] -> !(Maybe Text) -> ![UserMessageAttribute] -> Message
+ Aws.Sqs.Commands.Message: Message :: !Text -> !ReceiptHandle -> !Text -> Text -> ![(MessageAttribute, Text)] -> !Maybe Text -> ![UserMessageAttribute] -> Message
- Aws.Sqs.Commands.Message: ReceiveMessage :: !(Maybe Int) -> ![MessageAttribute] -> !(Maybe Int) -> ![UserMessageAttributeName] -> !QueueName -> !(Maybe Int) -> ReceiveMessage
+ Aws.Sqs.Commands.Message: ReceiveMessage :: !Maybe Int -> ![MessageAttribute] -> !Maybe Int -> ![UserMessageAttributeName] -> !QueueName -> !Maybe Int -> ReceiveMessage
- Aws.Sqs.Commands.Message: SendMessage :: !Text -> !QueueName -> ![UserMessageAttribute] -> !(Maybe Int) -> SendMessage
+ Aws.Sqs.Commands.Message: SendMessage :: !Text -> !QueueName -> ![UserMessageAttribute] -> !Maybe Int -> SendMessage
- Aws.Sqs.Commands.Message: SendMessageResponse :: !Text -> !MessageId -> !(Maybe Text) -> SendMessageResponse
+ Aws.Sqs.Commands.Message: SendMessageResponse :: !Text -> !MessageId -> !Maybe Text -> SendMessageResponse
- Aws.Sqs.Commands.Message: UserMessageAttributeBinary :: (Maybe UserMessageAttributeCustomType) -> ByteString -> UserMessageAttributeValue
+ Aws.Sqs.Commands.Message: UserMessageAttributeBinary :: Maybe UserMessageAttributeCustomType -> ByteString -> UserMessageAttributeValue
- Aws.Sqs.Commands.Message: UserMessageAttributeNumber :: (Maybe UserMessageAttributeCustomType) -> Scientific -> UserMessageAttributeValue
+ Aws.Sqs.Commands.Message: UserMessageAttributeNumber :: Maybe UserMessageAttributeCustomType -> Scientific -> UserMessageAttributeValue
- Aws.Sqs.Commands.Message: UserMessageAttributeString :: (Maybe UserMessageAttributeCustomType) -> Text -> UserMessageAttributeValue
+ Aws.Sqs.Commands.Message: UserMessageAttributeString :: Maybe UserMessageAttributeCustomType -> Text -> UserMessageAttributeValue
- Aws.Sqs.Commands.Message: [mMD5OfMessageAttributes] :: Message -> !(Maybe Text)
+ Aws.Sqs.Commands.Message: [mMD5OfMessageAttributes] :: Message -> !Maybe Text
- Aws.Sqs.Commands.Message: [rmMaxNumberOfMessages] :: ReceiveMessage -> !(Maybe Int)
+ Aws.Sqs.Commands.Message: [rmMaxNumberOfMessages] :: ReceiveMessage -> !Maybe Int
- Aws.Sqs.Commands.Message: [rmVisibilityTimeout] :: ReceiveMessage -> !(Maybe Int)
+ Aws.Sqs.Commands.Message: [rmVisibilityTimeout] :: ReceiveMessage -> !Maybe Int
- Aws.Sqs.Commands.Message: [rmWaitTimeSeconds] :: ReceiveMessage -> !(Maybe Int)
+ Aws.Sqs.Commands.Message: [rmWaitTimeSeconds] :: ReceiveMessage -> !Maybe Int
- Aws.Sqs.Commands.Message: [smDelaySeconds] :: SendMessage -> !(Maybe Int)
+ Aws.Sqs.Commands.Message: [smDelaySeconds] :: SendMessage -> !Maybe Int
- Aws.Sqs.Commands.Message: [smrMD5OfMessageAttributes] :: SendMessageResponse -> !(Maybe Text)
+ Aws.Sqs.Commands.Message: [smrMD5OfMessageAttributes] :: SendMessageResponse -> !Maybe Text
Files
- Aws/Aws.hs +2/−1
- Aws/Core.hs +2/−1
- Aws/S3/Core.hs +4/−2
- CHANGELOG.md +10/−0
- aws.cabal +3/−2
- tests/DynamoDb/Main.hs +1/−1
Aws/Aws.hs view
@@ -51,6 +51,7 @@ import qualified Data.Text.Encoding as T import qualified Data.Text.IO as T import qualified Network.HTTP.Conduit as HTTP+import qualified Network.HTTP.Client.TLS as HTTP import System.IO (stderr) import Prelude @@ -193,7 +194,7 @@ -> r -> io (MemoryResponse a) simpleAws cfg scfg request = liftIO $ runResourceT $ do- manager <- liftIO $ HTTP.newManager HTTP.tlsManagerSettings+ manager <- liftIO HTTP.getGlobalManager loadToMemory =<< readResponseIO =<< aws cfg scfg manager request -- | Run an AWS transaction, without enforcing that response and request type form a valid transaction pair.
Aws/Core.hs view
@@ -134,6 +134,7 @@ import Data.Typeable import Data.Word import qualified Network.HTTP.Conduit as HTTP+import qualified Network.HTTP.Client.TLS as HTTP import qualified Network.HTTP.Types as HTTP import System.Directory import System.Environment@@ -326,7 +327,7 @@ loadCredentialsFromInstanceMetadata :: MonadIO io => io (Maybe Credentials) loadCredentialsFromInstanceMetadata = do- mgr <- liftIO $ HTTP.newManager HTTP.tlsManagerSettings+ mgr <- liftIO HTTP.getGlobalManager -- check if the path is routable avail <- liftIO $ hostAvailable "169.254.169.254" if not avail
Aws/S3/Core.hs view
@@ -483,13 +483,15 @@ data UserInfo = UserInfo { userId :: CanonicalUserId- , userDisplayName :: T.Text+ , userDisplayName :: Maybe T.Text } deriving (Show) parseUserInfo :: MonadThrow m => Cu.Cursor -> m UserInfo parseUserInfo el = do id_ <- force "Missing user ID" $ el $/ elContent "ID"- displayName <- force "Missing user DisplayName" $ el $/ elContent "DisplayName"+ displayName <- return $ case (el $/ elContent "DisplayName") of+ (x:_) -> Just x+ [] -> Nothing return UserInfo { userId = id_, userDisplayName = displayName } data CannedAcl
CHANGELOG.md view
@@ -1,3 +1,13 @@+0.21 series+-----------++- 0.21+ - S3: Make user DisplayName field optional (used in "GetBucket"+ among other places)+ - Use HTTP.getGlobalManager from http-client-tls by default (more+ efficient, and we have a transitive dependency on the package+ anyways)+ 0.20 series -----------
aws.cabal view
@@ -1,5 +1,5 @@ Name: aws-Version: 0.20+Version: 0.21 Synopsis: Amazon Web Services (AWS) for Haskell Description: Bindings for Amazon Web Services (AWS), with the aim of supporting all AWS services. To see a high level overview of the library, see the README at <https://github.com/aristidb/aws/blob/master/README.md>. Homepage: http://github.com/aristidb/aws@@ -19,7 +19,7 @@ Source-repository this type: git location: https://github.com/aristidb/aws.git- tag: 0.20+ tag: 0.21 Source-repository head type: git@@ -131,6 +131,7 @@ directory >= 1.0 && < 2.0, filepath >= 1.1 && < 1.5, http-conduit >= 2.3 && < 2.4,+ http-client-tls >= 0.3 && < 0.4, http-types >= 0.7 && < 1.0, lifted-base >= 0.1 && < 0.3, memory,
tests/DynamoDb/Main.hs view
@@ -79,7 +79,7 @@ , "By running the tests in this test-suite costs for usage of AWS" , "services may incur." , ""- , "In order to actually excute the tests in this test-suite you must"+ , "In order to actually execute the tests in this test-suite you must" , "provide the command line options:" , "" , " --run-with-aws-credentials"