amazonka-core 1.4.4 → 1.4.5
raw patch · 4 files changed
+61/−46 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Network.AWS.Data.Base64: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Base64.Base64
- Network.AWS.Data.Base64: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Base64.Base64
- Network.AWS.Data.List1: instance Data.Aeson.Types.Class.FromJSON a => Data.Aeson.Types.Class.FromJSON (Network.AWS.Data.List1.List1 a)
- Network.AWS.Data.List1: instance Data.Aeson.Types.Class.ToJSON a => Data.Aeson.Types.Class.ToJSON (Network.AWS.Data.List1.List1 a)
- Network.AWS.Data.Map: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k, Network.AWS.Data.Text.FromText k, Data.Aeson.Types.Class.FromJSON v) => Data.Aeson.Types.Class.FromJSON (Network.AWS.Data.Map.Map k v)
- Network.AWS.Data.Map: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k, Network.AWS.Data.Text.ToText k, Data.Aeson.Types.Class.ToJSON v) => Data.Aeson.Types.Class.ToJSON (Network.AWS.Data.Map.Map k v)
- Network.AWS.Data.Numeric: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Numeric.Nat
- Network.AWS.Data.Numeric: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Numeric.Nat
- Network.AWS.Data.Sensitive: instance Data.Aeson.Types.Class.FromJSON a => Data.Aeson.Types.Class.FromJSON (Network.AWS.Data.Sensitive.Sensitive a)
- Network.AWS.Data.Sensitive: instance Data.Aeson.Types.Class.ToJSON a => Data.Aeson.Types.Class.ToJSON (Network.AWS.Data.Sensitive.Sensitive a)
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Time.AWSTime
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Time.BasicTime
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Time.ISO8601
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Time.POSIX
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Time.RFC822
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Time.AWSTime
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Time.BasicTime
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Time.ISO8601
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Time.POSIX
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Time.RFC822
- Network.AWS.Request: contentMD5 :: Request a -> Request a
- Network.AWS.Types: Bombay :: Region
- Network.AWS.Types: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Types.Abbrev
- Network.AWS.Types: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Types.AuthEnv
- Network.AWS.Types: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Types.ErrorCode
- Network.AWS.Types: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Types.ErrorMessage
- Network.AWS.Types: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Types.Region
- Network.AWS.Types: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Types.RequestId
- Network.AWS.Types: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Types.Region
+ Network.AWS.Data.Base64: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Base64.Base64
+ Network.AWS.Data.Base64: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Base64.Base64
+ Network.AWS.Data.JSON: parseJSONList :: Value -> Parser [a]
+ Network.AWS.Data.JSON: toEncodingList :: [a] -> Encoding
+ Network.AWS.Data.JSON: toJSONList :: [a] -> Value
+ Network.AWS.Data.List1: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Network.AWS.Data.List1.List1 a)
+ Network.AWS.Data.List1: instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Network.AWS.Data.List1.List1 a)
+ Network.AWS.Data.Map: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k, Network.AWS.Data.Text.FromText k, Data.Aeson.Types.FromJSON.FromJSON v) => Data.Aeson.Types.FromJSON.FromJSON (Network.AWS.Data.Map.Map k v)
+ Network.AWS.Data.Map: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k, Network.AWS.Data.Text.ToText k, Data.Aeson.Types.ToJSON.ToJSON v) => Data.Aeson.Types.ToJSON.ToJSON (Network.AWS.Data.Map.Map k v)
+ Network.AWS.Data.Numeric: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Numeric.Nat
+ Network.AWS.Data.Numeric: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Numeric.Nat
+ Network.AWS.Data.Sensitive: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Network.AWS.Data.Sensitive.Sensitive a)
+ Network.AWS.Data.Sensitive: instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Network.AWS.Data.Sensitive.Sensitive a)
+ Network.AWS.Data.Text: instance (Data.CaseInsensitive.Internal.FoldCase a, Network.AWS.Data.Text.FromText a) => Network.AWS.Data.Text.FromText (Data.CaseInsensitive.Internal.CI a)
+ Network.AWS.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Time.AWSTime
+ Network.AWS.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Time.BasicTime
+ Network.AWS.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Time.ISO8601
+ Network.AWS.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Time.POSIX
+ Network.AWS.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Time.RFC822
+ Network.AWS.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Time.AWSTime
+ Network.AWS.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Time.BasicTime
+ Network.AWS.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Time.ISO8601
+ Network.AWS.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Time.POSIX
+ Network.AWS.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Time.RFC822
+ Network.AWS.Request: contentMD5Header :: Request a -> Request a
+ Network.AWS.Request: expectHeader :: Request a -> Request a
+ Network.AWS.Types: Mumbai :: Region
+ Network.AWS.Types: Ohio :: Region
+ Network.AWS.Types: Seoul :: Region
+ Network.AWS.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Types.Abbrev
+ Network.AWS.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Types.AuthEnv
+ Network.AWS.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Types.ErrorCode
+ Network.AWS.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Types.ErrorMessage
+ Network.AWS.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Types.Region
+ Network.AWS.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Types.RequestId
+ Network.AWS.Types: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Types.Region
Files
- amazonka-core.cabal +1/−1
- src/Network/AWS/Data/Text.hs +3/−0
- src/Network/AWS/Request.hs +19/−14
- src/Network/AWS/Types.hs +38/−31
amazonka-core.cabal view
@@ -1,5 +1,5 @@ name: amazonka-core-version: 1.4.4+version: 1.4.5 synopsis: Core data types and functionality for Amazonka libraries. homepage: https://github.com/brendanhay/amazonka bug-reports: https://github.com/brendanhay/amazonka/issues
src/Network/AWS/Data/Text.hs view
@@ -76,6 +76,9 @@ instance FromText ByteString where parser = Text.encodeUtf8 <$> A.takeText +instance (CI.FoldCase a, FromText a) => FromText (CI a) where+ parser = CI.mk <$> parser+ instance FromText Char where parser = A.anyChar <* A.endOfInput
src/Network/AWS/Request.hs view
@@ -36,8 +36,9 @@ -- ** Constructors , defaultRequest - -- ** Hashing- , contentMD5+ -- ** Operation Plugins+ , contentMD5Header+ , expectHeader -- ** Lenses , requestHeaders@@ -98,7 +99,9 @@ } postBody :: (ToRequest a, ToBody a) => Service -> a -> Request a-postBody s x = putBody s x & rqMethod .~ POST+postBody s x = defaultRequest s x+ & rqMethod .~ POST+ & rqBody .~ toBody x putXML :: (ToRequest a, ToElement a) => Service -> a -> Request a putXML s x = defaultRequest s x@@ -112,9 +115,8 @@ putBody :: (ToRequest a, ToBody a) => Service -> a -> Request a putBody s x = defaultRequest s x- & rqMethod .~ PUT- & rqBody .~ toBody x- & rqHeaders %~ hdr hExpect "100-continue"+ & rqMethod .~ PUT+ & rqBody .~ toBody x defaultRequest :: ToRequest a => Service -> a -> Request a defaultRequest s x = Request@@ -126,14 +128,6 @@ , _rqBody = "" } -contentMD5 :: Request a -> Request a-contentMD5 rq- | missing, Just x <- md5 = rq & rqHeaders %~ hdr HTTP.hContentMD5 x- | otherwise = rq- where- missing = isNothing $ lookup HTTP.hContentMD5 (_rqHeaders rq)- md5 = md5Base64 (_rqBody rq)- queryString :: Lens' Client.Request ByteString queryString f x = f (Client.queryString x) <&> \y -> x { Client.queryString = y }@@ -159,3 +153,14 @@ n -> ":" <> toBS n secure = Client.secure x++contentMD5Header :: Request a -> Request a+contentMD5Header rq+ | missing, Just x <- md5 = rq & rqHeaders %~ hdr HTTP.hContentMD5 x+ | otherwise = rq+ where+ missing = isNothing $ lookup HTTP.hContentMD5 (_rqHeaders rq)+ md5 = md5Base64 (_rqBody rq)++expectHeader :: Request a -> Request a+expectHeader = rqHeaders %~ hdr hExpect "100-continue"
src/Network/AWS/Types.hs view
@@ -560,21 +560,23 @@ withAuth (Ref _ r) f = liftIO (readIORef r) >>= f withAuth (Auth e) f = f e --- | The sum of available AWS regions.+-- | The available AWS regions. data Region- = Ireland -- ^ Europe / eu-west-1- | Frankfurt -- ^ Europe / eu-central-1- | Tokyo -- ^ Asia Pacific / ap-northeast-1- | Singapore -- ^ Asia Pacific / ap-southeast-1- | Sydney -- ^ Asia Pacific / ap-southeast-2- | Bombay -- ^ Asia Pacific / ap-south-1- | Beijing -- ^ China / cn-north-1- | NorthVirginia -- ^ US / us-east-1- | NorthCalifornia -- ^ US / us-west-1- | Oregon -- ^ US / us-west-2- | GovCloud -- ^ AWS GovCloud / us-gov-west-1- | GovCloudFIPS -- ^ AWS GovCloud (FIPS 140-2) S3 Only / fips-us-gov-west-1- | SaoPaulo -- ^ South America / sa-east-1+ = NorthVirginia -- ^ US East ('us-east-1').+ | Ohio -- ^ US East ('us-east-2').+ | NorthCalifornia -- ^ US West ('us-west-1').+ | Oregon -- ^ US West ('us-west-2').+ | Tokyo -- ^ Asia Pacific ('ap-northeast-1').+ | Seoul -- ^ Asia Pacific ('ap-northeast-2').+ | Mumbai -- ^ Asia Pacific ('ap-south-1').+ | Singapore -- ^ Asia Pacific ('ap-southeast-1').+ | Sydney -- ^ Asia Pacific ('ap-southeast-2').+ | SaoPaulo -- ^ South America ('sa-east-1').+ | Ireland -- ^ EU ('eu-west-1').+ | Frankfurt -- ^ EU ('eu-central-1').+ | GovCloud -- ^ US GovCloud ('us-gov-west-1').+ | GovCloudFIPS -- ^ US GovCloud FIPS (S3 Only, 'fips-us-gov-west-1').+ | Beijing -- ^ China ('cn-north-1'). deriving (Eq, Ord, Read, Show, Data, Typeable, Generic) instance Hashable Region@@ -582,36 +584,41 @@ instance FromText Region where parser = takeLowerText >>= \case- "eu-west-1" -> pure Ireland- "eu-central-1" -> pure Frankfurt+ "us-east-1" -> pure NorthVirginia+ "us-east-2" -> pure Ohio+ "us-west-1" -> pure NorthCalifornia+ "us-west-2" -> pure Oregon "ap-northeast-1" -> pure Tokyo+ "ap-northeast-2" -> pure Seoul+ "ap-south-1" -> pure Mumbai "ap-southeast-1" -> pure Singapore "ap-southeast-2" -> pure Sydney- "ap-south-1" -> pure Bombay- "cn-north-1" -> pure Beijing- "us-east-1" -> pure NorthVirginia- "us-west-2" -> pure Oregon- "us-west-1" -> pure NorthCalifornia+ "sa-east-1" -> pure SaoPaulo+ "eu-west-1" -> pure Ireland+ "eu-central-1" -> pure Frankfurt "us-gov-west-1" -> pure GovCloud "fips-us-gov-west-1" -> pure GovCloudFIPS- "sa-east-1" -> pure SaoPaulo- e -> fromTextError $ "Failure parsing Region from " <> e+ "cn-north-1" -> pure Beijing+ e ->+ fromTextError $ "Failure parsing Region from " <> e instance ToText Region where toText = \case- Ireland -> "eu-west-1"- Frankfurt -> "eu-central-1"- Tokyo -> "ap-northeast-1"- Singapore -> "ap-southeast-1"- Sydney -> "ap-southeast-2"- Bombay -> "ap-south-1"- Beijing -> "cn-north-1" NorthVirginia -> "us-east-1"+ Ohio -> "us-east-2" NorthCalifornia -> "us-west-1" Oregon -> "us-west-2"+ Tokyo -> "ap-northeast-1"+ Seoul -> "ap-northeast-2"+ Mumbai -> "ap-south-1"+ Singapore -> "ap-southeast-1"+ Sydney -> "ap-southeast-2"+ SaoPaulo -> "sa-east-1"+ Ireland -> "eu-west-1"+ Frankfurt -> "eu-central-1" GovCloud -> "us-gov-west-1" GovCloudFIPS -> "fips-us-gov-west-1"- SaoPaulo -> "sa-east-1"+ Beijing -> "cn-north-1" instance ToByteString Region