aws-sdk 0.11.0 → 0.11.1
raw patch · 17 files changed
+180/−157 lines, 17 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- AWS: TextConversionException :: Text -> AWSException
- AWS.RDS.Types: DBm1large :: DBInstanceClass
- AWS.RDS.Types: DBm1medium :: DBInstanceClass
- AWS.RDS.Types: DBm1small :: DBInstanceClass
- AWS.RDS.Types: DBm1xlarge :: DBInstanceClass
- AWS.RDS.Types: DBm22xlarge :: DBInstanceClass
- AWS.RDS.Types: DBm24xlarge :: DBInstanceClass
- AWS.RDS.Types: DBm2xlarge :: DBInstanceClass
- AWS.RDS.Types: DBt1micro :: DBInstanceClass
- AWS.RDS.Types: EngineMySQL :: Engine
- AWS.RDS.Types: EngineOracleEE :: Engine
- AWS.RDS.Types: EngineOracleSE :: Engine
- AWS.RDS.Types: EngineOracleSE1 :: Engine
- AWS.RDS.Types: EngineSqlServerEE :: Engine
- AWS.RDS.Types: EngineSqlServerEX :: Engine
- AWS.RDS.Types: EngineSqlServerSE :: Engine
- AWS.RDS.Types: EngineSqlServerWeb :: Engine
- AWS.RDS.Types: PMVAllocatedStorage :: Int -> PendingModifiedValue
- AWS.RDS.Types: PMVBackupRetentionPeriod :: Int -> PendingModifiedValue
- AWS.RDS.Types: PMVDBInstanceClass :: Text -> PendingModifiedValue
- AWS.RDS.Types: PMVDBInstanceIdentifier :: Text -> PendingModifiedValue
- AWS.RDS.Types: PMVEngineVersion :: Text -> PendingModifiedValue
- AWS.RDS.Types: PMVIops :: Int -> PendingModifiedValue
- AWS.RDS.Types: PMVMasterUserPassword :: Text -> PendingModifiedValue
- AWS.RDS.Types: PMVMultiAZ :: Bool -> PendingModifiedValue
- AWS.RDS.Types: PMVPort :: Int -> PendingModifiedValue
- AWS.RDS.Types: azName :: AvailabilityZone -> Text
- AWS.RDS.Types: azProvisionedIopsCapable :: AvailabilityZone -> Bool
- AWS.RDS.Types: data DBInstanceClass
- AWS.RDS.Types: data Engine
- AWS.RDS.Types: dbiAllocatedStorage :: DBInstance -> Int
- AWS.RDS.Types: dbiAutoMinorVersionUpgrade :: DBInstance -> Bool
- AWS.RDS.Types: dbiAvailabilityZone :: DBInstance -> Maybe Text
- AWS.RDS.Types: dbiBackupRetentionPeriod :: DBInstance -> Int
- AWS.RDS.Types: dbiCharacterSetName :: DBInstance -> Maybe Text
- AWS.RDS.Types: dbiDBInstanceClass :: DBInstance -> DBInstanceClass
- AWS.RDS.Types: dbiDBInstanceIdentifier :: DBInstance -> Text
- AWS.RDS.Types: dbiDBInstanceStatus :: DBInstance -> Maybe Text
- AWS.RDS.Types: dbiDBName :: DBInstance -> Maybe Text
- AWS.RDS.Types: dbiDBParameterGroups :: DBInstance -> [DBParameterGroupStatus]
- AWS.RDS.Types: dbiEndpoint :: DBInstance -> Maybe Endpoint
- AWS.RDS.Types: dbiEngine :: DBInstance -> Engine
- AWS.RDS.Types: dbiEngineVersion :: DBInstance -> Text
- AWS.RDS.Types: dbiInstanceCreateTime :: DBInstance -> Maybe UTCTime
- AWS.RDS.Types: dbiIops :: DBInstance -> Maybe Int
- AWS.RDS.Types: dbiLatestRestorableTime :: DBInstance -> Maybe UTCTime
- AWS.RDS.Types: dbiLicenseModel :: DBInstance -> LicenseModel
- AWS.RDS.Types: dbiMasterUsername :: DBInstance -> Text
- AWS.RDS.Types: dbiMultiAZ :: DBInstance -> Bool
- AWS.RDS.Types: dbiOptionGroupMembership :: DBInstance -> Maybe OptionGroupMembership
- AWS.RDS.Types: dbiPendingModifiedValues :: DBInstance -> [PendingModifiedValue]
- AWS.RDS.Types: dbiPreferredBackupWindow :: DBInstance -> Text
- AWS.RDS.Types: dbiPreferredMaintenanceWindow :: DBInstance -> Text
- AWS.RDS.Types: dbiPubliclyAccessible :: DBInstance -> Bool
- AWS.RDS.Types: dbiReadReplicaDBInstanceIdentifiers :: DBInstance -> [Text]
- AWS.RDS.Types: dbiReadReplicaSourceDBInstanceIdentifier :: DBInstance -> Maybe Text
- AWS.RDS.Types: dbiSecurityGroups :: DBInstance -> [DBSecurityGroupMembership]
- AWS.RDS.Types: dbiSubnetGroup :: DBInstance -> Maybe DBSubnetGroup
- AWS.RDS.Types: dbiVpcSecurityGroups :: DBInstance -> [VpcSecurityGroupMembership]
- AWS.RDS.Types: dbpgDBParameterGroupFamily :: DBParameterGroup -> Text
- AWS.RDS.Types: dbpgDBParameterGroupName :: DBParameterGroup -> Text
- AWS.RDS.Types: dbpgDescription :: DBParameterGroup -> Text
- AWS.RDS.Types: dbpgsDBParameterGroupName :: DBParameterGroupStatus -> Text
- AWS.RDS.Types: dbpgsParameterApplyStatus :: DBParameterGroupStatus -> Text
- AWS.RDS.Types: dbsAllocatedStorage :: DBSnapshot -> Int
- AWS.RDS.Types: dbsAvailabilityZone :: DBSnapshot -> Text
- AWS.RDS.Types: dbsDBInstanceIdentifier :: DBSnapshot -> Text
- AWS.RDS.Types: dbsDBSnapshotIdentifier :: DBSnapshot -> Text
- AWS.RDS.Types: dbsEngine :: DBSnapshot -> Text
- AWS.RDS.Types: dbsEngineVersion :: DBSnapshot -> Text
- AWS.RDS.Types: dbsInstanceCreateTime :: DBSnapshot -> UTCTime
- AWS.RDS.Types: dbsIops :: DBSnapshot -> Maybe Int
- AWS.RDS.Types: dbsLicenseModel :: DBSnapshot -> Text
- AWS.RDS.Types: dbsMasterUsername :: DBSnapshot -> Text
- AWS.RDS.Types: dbsPort :: DBSnapshot -> Int
- AWS.RDS.Types: dbsSnapshotCreateTime :: DBSnapshot -> Maybe UTCTime
- AWS.RDS.Types: dbsSnapshotType :: DBSnapshot -> Text
- AWS.RDS.Types: dbsStatus :: DBSnapshot -> Text
- AWS.RDS.Types: dbsVpcId :: DBSnapshot -> Maybe Text
- AWS.RDS.Types: dbsgDBSecurityGroupDescription :: DBSecurityGroup -> Text
- AWS.RDS.Types: dbsgDBSecurityGroupName :: DBSecurityGroup -> Text
- AWS.RDS.Types: dbsgEC2SecurityGroups :: DBSecurityGroup -> [EC2SecurityGroup]
- AWS.RDS.Types: dbsgIPRanges :: DBSecurityGroup -> [IPRange]
- AWS.RDS.Types: dbsgOwnerId :: DBSecurityGroup -> Text
- AWS.RDS.Types: dbsgVpcId :: DBSecurityGroup -> Maybe Text
- AWS.RDS.Types: dbsgmDBSecurityGroupName :: DBSecurityGroupMembership -> Text
- AWS.RDS.Types: dbsgmStatus :: DBSecurityGroupMembership -> Text
- AWS.RDS.Types: dbsngDBSubnetGroupDescription :: DBSubnetGroup -> Text
- AWS.RDS.Types: dbsngDBSubnetGroupName :: DBSubnetGroup -> Text
- AWS.RDS.Types: dbsngSubnetGroupStatus :: DBSubnetGroup -> Text
- AWS.RDS.Types: dbsngSubnets :: DBSubnetGroup -> [Subnet]
- AWS.RDS.Types: dbsngVpcId :: DBSubnetGroup -> Text
- AWS.RDS.Types: epAddress :: Endpoint -> Text
- AWS.RDS.Types: epPort :: Endpoint -> Int
- AWS.RDS.Types: eventEventCategories :: Event -> [Text]
- AWS.RDS.Types: ogmOptionGroupName :: OptionGroupMembership -> Text
- AWS.RDS.Types: ogmStatus :: OptionGroupMembership -> Text
- AWS.RDS.Types: vpcSecurityGroupMembershipStatus :: VpcSecurityGroupMembership -> Text
- AWS.RDS.Types: vpcSecurityGroupMembershipVpcSecurityGroupId :: VpcSecurityGroupMembership -> Text
+ AWS: ConnectionException :: e -> AWSException
+ AWS: FromTextError :: Text -> AWSException
+ AWS: OtherInternalException :: e -> AWSException
+ AWS: ServerError :: AWSException
+ AWS: XmlParserError :: XmlException -> AWSException
+ AWS.RDS.Types: PendingModifiedValueAllocatedStorage :: Int -> PendingModifiedValue
+ AWS.RDS.Types: PendingModifiedValueBackupRetentionPeriod :: Int -> PendingModifiedValue
+ AWS.RDS.Types: PendingModifiedValueDBInstanceClass :: Text -> PendingModifiedValue
+ AWS.RDS.Types: PendingModifiedValueDBInstanceIdentifier :: Text -> PendingModifiedValue
+ AWS.RDS.Types: PendingModifiedValueEngineVersion :: Text -> PendingModifiedValue
+ AWS.RDS.Types: PendingModifiedValueIops :: Int -> PendingModifiedValue
+ AWS.RDS.Types: PendingModifiedValueMasterUserPassword :: Text -> PendingModifiedValue
+ AWS.RDS.Types: PendingModifiedValueMultiAZ :: Bool -> PendingModifiedValue
+ AWS.RDS.Types: PendingModifiedValuePort :: Int -> PendingModifiedValue
+ AWS.RDS.Types: availabilityZoneName :: AvailabilityZone -> Text
+ AWS.RDS.Types: availabilityZoneProvisionedIopsCapable :: AvailabilityZone -> Bool
+ AWS.RDS.Types: dbInstanceAllocatedStorage :: DBInstance -> Int
+ AWS.RDS.Types: dbInstanceAutoMinorVersionUpgrade :: DBInstance -> Bool
+ AWS.RDS.Types: dbInstanceAvailabilityZone :: DBInstance -> Maybe Text
+ AWS.RDS.Types: dbInstanceBackupRetentionPeriod :: DBInstance -> Int
+ AWS.RDS.Types: dbInstanceCharacterSetName :: DBInstance -> Maybe Text
+ AWS.RDS.Types: dbInstanceDBInstanceClass :: DBInstance -> DBInstanceClass
+ AWS.RDS.Types: dbInstanceDBInstanceIdentifier :: DBInstance -> Text
+ AWS.RDS.Types: dbInstanceDBInstanceStatus :: DBInstance -> Maybe Text
+ AWS.RDS.Types: dbInstanceDBName :: DBInstance -> Maybe Text
+ AWS.RDS.Types: dbInstanceDBParameterGroups :: DBInstance -> [DBParameterGroupStatus]
+ AWS.RDS.Types: dbInstanceEndpoint :: DBInstance -> Maybe Endpoint
+ AWS.RDS.Types: dbInstanceEngine :: DBInstance -> Engine
+ AWS.RDS.Types: dbInstanceEngineVersion :: DBInstance -> Text
+ AWS.RDS.Types: dbInstanceInstanceCreateTime :: DBInstance -> Maybe UTCTime
+ AWS.RDS.Types: dbInstanceIops :: DBInstance -> Maybe Int
+ AWS.RDS.Types: dbInstanceLatestRestorableTime :: DBInstance -> Maybe UTCTime
+ AWS.RDS.Types: dbInstanceLicenseModel :: DBInstance -> LicenseModel
+ AWS.RDS.Types: dbInstanceMasterUsername :: DBInstance -> Text
+ AWS.RDS.Types: dbInstanceMultiAZ :: DBInstance -> Bool
+ AWS.RDS.Types: dbInstanceOptionGroupMembership :: DBInstance -> Maybe OptionGroupMembership
+ AWS.RDS.Types: dbInstancePendingModifiedValues :: DBInstance -> [PendingModifiedValue]
+ AWS.RDS.Types: dbInstancePreferredBackupWindow :: DBInstance -> Text
+ AWS.RDS.Types: dbInstancePreferredMaintenanceWindow :: DBInstance -> Text
+ AWS.RDS.Types: dbInstancePubliclyAccessible :: DBInstance -> Bool
+ AWS.RDS.Types: dbInstanceReadReplicaDBInstanceIdentifiers :: DBInstance -> [Text]
+ AWS.RDS.Types: dbInstanceReadReplicaSourceDBInstanceIdentifier :: DBInstance -> Maybe Text
+ AWS.RDS.Types: dbInstanceSecurityGroups :: DBInstance -> [DBSecurityGroupMembership]
+ AWS.RDS.Types: dbInstanceSubnetGroup :: DBInstance -> Maybe DBSubnetGroup
+ AWS.RDS.Types: dbInstanceVpcSecurityGroups :: DBInstance -> [VpcSecurityGroupMembership]
+ AWS.RDS.Types: dbParameterGroupDescription :: DBParameterGroup -> Text
+ AWS.RDS.Types: dbParameterGroupFamily :: DBParameterGroup -> Text
+ AWS.RDS.Types: dbParameterGroupName :: DBParameterGroup -> Text
+ AWS.RDS.Types: dbParameterGroupStatusName :: DBParameterGroupStatus -> Text
+ AWS.RDS.Types: dbParameterGroupStatusStatus :: DBParameterGroupStatus -> Text
+ AWS.RDS.Types: dbSecurityGroupDescription :: DBSecurityGroup -> Text
+ AWS.RDS.Types: dbSecurityGroupEC2SecurityGroups :: DBSecurityGroup -> [EC2SecurityGroup]
+ AWS.RDS.Types: dbSecurityGroupIPRanges :: DBSecurityGroup -> [IPRange]
+ AWS.RDS.Types: dbSecurityGroupMembershipName :: DBSecurityGroupMembership -> Text
+ AWS.RDS.Types: dbSecurityGroupMembershipStatus :: DBSecurityGroupMembership -> Text
+ AWS.RDS.Types: dbSecurityGroupName :: DBSecurityGroup -> Text
+ AWS.RDS.Types: dbSecurityGroupOwnerId :: DBSecurityGroup -> Text
+ AWS.RDS.Types: dbSecurityGroupVpcId :: DBSecurityGroup -> Maybe Text
+ AWS.RDS.Types: dbSnapshotAllocatedStorage :: DBSnapshot -> Int
+ AWS.RDS.Types: dbSnapshotAvailabilityZone :: DBSnapshot -> Text
+ AWS.RDS.Types: dbSnapshotCreateTime :: DBSnapshot -> Maybe UTCTime
+ AWS.RDS.Types: dbSnapshotDBInstanceIdentifier :: DBSnapshot -> Text
+ AWS.RDS.Types: dbSnapshotEngine :: DBSnapshot -> Text
+ AWS.RDS.Types: dbSnapshotEngineVersion :: DBSnapshot -> Text
+ AWS.RDS.Types: dbSnapshotIdentifier :: DBSnapshot -> Text
+ AWS.RDS.Types: dbSnapshotInstanceCreateTime :: DBSnapshot -> UTCTime
+ AWS.RDS.Types: dbSnapshotIops :: DBSnapshot -> Maybe Int
+ AWS.RDS.Types: dbSnapshotLicenseModel :: DBSnapshot -> Text
+ AWS.RDS.Types: dbSnapshotMasterUsername :: DBSnapshot -> Text
+ AWS.RDS.Types: dbSnapshotPort :: DBSnapshot -> Int
+ AWS.RDS.Types: dbSnapshotStatus :: DBSnapshot -> Text
+ AWS.RDS.Types: dbSnapshotType :: DBSnapshot -> Text
+ AWS.RDS.Types: dbSnapshotVpcId :: DBSnapshot -> Maybe Text
+ AWS.RDS.Types: dbSubnetGroupDescription :: DBSubnetGroup -> Text
+ AWS.RDS.Types: dbSubnetGroupName :: DBSubnetGroup -> Text
+ AWS.RDS.Types: dbSubnetGroupStatus :: DBSubnetGroup -> Text
+ AWS.RDS.Types: dbSubnetGroupVpcId :: DBSubnetGroup -> Text
+ AWS.RDS.Types: dbSubnets :: DBSubnetGroup -> [Subnet]
+ AWS.RDS.Types: endpointAddress :: Endpoint -> Text
+ AWS.RDS.Types: endpointPort :: Endpoint -> Int
+ AWS.RDS.Types: eventCategories :: Event -> [Text]
+ AWS.RDS.Types: optionGroupName :: OptionGroupMembership -> Text
+ AWS.RDS.Types: optionGroupStatus :: OptionGroupMembership -> Text
+ AWS.RDS.Types: type DBInstanceClass = Text
+ AWS.RDS.Types: type Engine = Text
+ AWS.RDS.Types: vpcSecurityGroupId :: VpcSecurityGroupMembership -> Text
+ AWS.RDS.Types: vpcSecurityGroupStatus :: VpcSecurityGroupMembership -> Text
+ AWS.RDS.Util: createDBInstanceRequest :: DBInstance -> Text -> Text -> CreateDBInstanceRequest
Files
- AWS/Class.hs +11/−2
- AWS/EC2/Internal.hs +1/−1
- AWS/EC2/NetworkInterface.hs +2/−3
- AWS/EC2/Query.hs +1/−1
- AWS/EC2/Types/Address.hs +1/−1
- AWS/EC2/Types/Instance.hs +1/−1
- AWS/Lib/FromText.hs +2/−2
- AWS/Lib/Query.hs +26/−3
- AWS/RDS/DBInstance.hs +9/−9
- AWS/RDS/Types/DBInstance.hs +56/−100
- AWS/RDS/Types/DBParameterGroup.hs +3/−3
- AWS/RDS/Types/DBSecurityGroup.hs +6/−6
- AWS/RDS/Types/DBSnapshot.hs +15/−15
- AWS/RDS/Types/DBSubnetGroup.hs +7/−7
- AWS/RDS/Types/Event.hs +3/−2
- AWS/RDS/Util.hs +34/−0
- aws-sdk.cabal +2/−1
AWS/Class.hs view
@@ -4,6 +4,8 @@ , MultiParamTypeClasses , UndecidableInstances , DeriveDataTypeable+ , ExistentialQuantification+ , StandaloneDeriving #-} module AWS.Class@@ -13,6 +15,7 @@ , AWSException(..) , AWSContext(..) , getLastRequestId+ -- * re-export , monadThrow ) where @@ -35,6 +38,7 @@ import Control.Exception (Exception) import Data.Typeable (Typeable) import Data.Conduit (MonadThrow, monadThrow)+import Text.XML.Stream.Parse (XmlException) import qualified Network.HTTP.Conduit as HTTP import Data.Text (Text)@@ -51,11 +55,16 @@ , errorMessage :: Maybe Text , errorRequestId :: Text } -- ^ This error is caused by client requests.+ | ServerError -- ^ XXX: Not implimented. Internal error of AWS. | ResponseParseError Text- | TextConversionException Text+ | FromTextError Text -- ^ parse error: cannot convert Text to oher data type.+ | XmlParserError XmlException+ | forall e . Exception e => ConnectionException e+ | forall e . Exception e => OtherInternalException e -- ^ bug | NextToken Text -- ^ This response has next token.- deriving (Show, Typeable)+ deriving (Typeable)+deriving instance Show AWSException instance Exception AWSException
AWS/EC2/Internal.hs view
@@ -87,7 +87,7 @@ volumeType :: MonadThrow m => Text -> Maybe Int -> m VolumeType volumeType t Nothing | t == "standard" = return $ VolumeTypeStandard volumeType t (Just i) | t == "io1" = return $ VolumeTypeIO1 i-volumeType t _ = monadThrow $ TextConversionException t+volumeType t _ = monadThrow $ FromTextError t volumeTypeSink :: MonadThrow m => Pipe Event Event o u m VolumeType
AWS/EC2/NetworkInterface.hs view
@@ -18,7 +18,6 @@ import AWS.EC2.Internal import AWS.EC2.Types-import AWS.EC2.Params import AWS.EC2.Query import AWS.Lib.Parser import AWS.Util@@ -37,7 +36,7 @@ , either f g epip , "AllowReassignment" |=? boolToText <$> ar ]- f = privateIpAddressesParam "PrivateIpAddress"+ f = ("PrivateIpAddress" |.#=) . map toText g = ("SecondaryPrivateIpAddressCount" |=) . toText unassignPrivateIpAddresses@@ -50,7 +49,7 @@ where params = [ "NetworkInterfaceId" |= niid- , privateIpAddressesParam "PrivateIpAddress" addrs+ , "PrivateIpAddress" |.#= map toText addrs ] describeNetworkInterfaces
AWS/EC2/Query.hs view
@@ -77,7 +77,7 @@ ec2QuerySource' action params token cond = do cred <- Reader.ask ctx <- State.get- (src1, rid) <- lift $ do+ (src1, rid) <- lift $ E.handle exceptionTransform $ do response <- requestQuery cred ctx action params' apiVersion sinkError res <- response $=+ XmlP.parseBytes XmlP.def res $$++ sinkRequestId
AWS/EC2/Types/Address.hs view
@@ -33,7 +33,7 @@ fromMaybeText _name (Just t) | t == "standard" = return AddressDomainStandard | t == "vpc" = return AddressDomainVPC- | otherwise = monadThrow $ TextConversionException t+ | otherwise = monadThrow $ FromTextError t data AllocateAddress = AllocateAddress { allocateAddressPublicIp :: IPv4
AWS/EC2/Types/Instance.hs view
@@ -149,7 +149,7 @@ fromMaybeText _name Nothing = return LifecycleNone fromMaybeText _name (Just t) | t == "spot" = return LifecycleSpot- | otherwise = monadThrow $ TextConversionException t+ | otherwise = monadThrow $ FromTextError t data InstanceMonitoringState = MonitoringDisabled
AWS/Lib/FromText.hs view
@@ -31,7 +31,7 @@ where fromText :: MonadThrow m => Text -> m a fromText t- = maybe (monadThrow $ TextConversionException t) return+ = maybe (monadThrow $ FromTextError t) return . fromTextMay $ t @@ -41,7 +41,7 @@ fromMaybeText :: MonadThrow m => Text -> Maybe Text -> m a fromMaybeText name = maybe- (monadThrow $ TextConversionException $ "no text: " <> name)+ (monadThrow $ FromTextError $ "no text: " <> name) fromText instance FromText a => FromText (Maybe a)
AWS/Lib/Query.hs view
@@ -15,6 +15,7 @@ , ($=+) , requestQuery , commonQuery+ , exceptionTransform , textToBS ) where @@ -26,17 +27,21 @@ import qualified Data.Text as T import Data.List (transpose)+import Data.Maybe import Data.Monoid import Data.XML.Types (Event(..)) import Data.Conduit import qualified Data.Conduit.Internal as CI import qualified Network.HTTP.Conduit as HTTP import qualified Text.XML.Stream.Parse as XmlP+import Text.XML.Stream.Parse (XmlException) import Data.Time (UTCTime, formatTime, getCurrentTime) import System.Locale (defaultTimeLocale, iso8601DateFormat) import qualified Data.Map as Map import Data.Map (Map)+import Network.HTTP.Conduit (HttpException) import qualified Network.HTTP.Types as H+import Network.TLS (HandshakeFailed) import qualified Data.Digest.Pure.SHA as SHA import qualified Data.ByteString.Base64 as BASE import Control.Monad.IO.Class (MonadIO, liftIO)@@ -278,8 +283,26 @@ commonQuery apiVersion action params sink = do ctx <- State.get cred <- Reader.ask- rs <- lift $ requestQuery cred ctx action params apiVersion sinkError- (res, rid) <- lift $ rs $$+-- XmlP.parseBytes XmlP.def =$ sinkResponse (bsToText action) sink+ (res, rid) <- lift $ E.handle exceptionTransform $ do+ rs <- requestQuery cred ctx action params apiVersion sinkError+ rs $$+- XmlP.parseBytes XmlP.def+ =$ sinkResponse (bsToText action) sink State.put ctx { lastRequestId = Just rid } return res++exceptionTransform+ :: (MonadBaseControl IO m, MonadResource m)+ => SomeException -> m a+exceptionTransform e+ | isJust awse = throw $ fromJust awse+ | isJust xmle = throw $ XmlParserError $ fromJust xmle+ | isJust httpe = throw $ ConnectionException $ fromJust httpe+ | isJust tlse = throw $ ConnectionException $ fromJust tlse+ | isJust ioe = throw $ ConnectionException $ fromJust ioe+ | otherwise = throw $ OtherInternalException e+ where+ awse = fromException e :: Maybe AWSException+ xmle = fromException e :: Maybe XmlException+ httpe = fromException e :: Maybe HttpException+ tlse = fromException e :: Maybe HandshakeFailed+ ioe = fromException e :: Maybe IOException
AWS/RDS/DBInstance.hs view
@@ -95,15 +95,15 @@ => GLSink Event m [PendingModifiedValue] sinkPendingModifiedValues = element "PendingModifiedValues" $ catMaybes <$> sequence- [ f PMVMasterUserPassword "MasterUserPassword"- , f PMVIops "Iops"- , f PMVMultiAZ "MultiAZ"- , f PMVAllocatedStorage "AllocatedStorage"- , f PMVEngineVersion "EngineVersion"- , f PMVDBInstanceIdentifier "DBInstanceIdentifier"- , f PMVDBInstanceClass "DBInstanceClass"- , f PMVBackupRetentionPeriod "BackupRetentionPeriod"- , f PMVPort "Port"+ [ f PendingModifiedValueMasterUserPassword "MasterUserPassword"+ , f PendingModifiedValueIops "Iops"+ , f PendingModifiedValueMultiAZ "MultiAZ"+ , f PendingModifiedValueAllocatedStorage "AllocatedStorage"+ , f PendingModifiedValueEngineVersion "EngineVersion"+ , f PendingModifiedValueDBInstanceIdentifier "DBInstanceIdentifier"+ , f PendingModifiedValueDBInstanceClass "DBInstanceClass"+ , f PendingModifiedValueBackupRetentionPeriod "BackupRetentionPeriod"+ , f PendingModifiedValuePort "Port" ] where f c name = fmap c <$> getT name
AWS/RDS/Types/DBInstance.hs view
@@ -9,8 +9,8 @@ , OptionGroupMembership(..) , PendingModifiedValue(..) , CreateDBInstanceRequest(..)- , DBInstanceClass(..)- , Engine(..)+ , DBInstanceClass+ , Engine , LicenseModel(..) , FinalSnapshot(..) , CreateReadReplicaRequest(..)@@ -20,78 +20,78 @@ import AWS.RDS.Types.DBSubnetGroup (DBSubnetGroup) data DBInstance = DBInstance- { dbiIops :: Maybe Int- , dbiBackupRetentionPeriod :: Int- , dbiDBInstanceStatus :: Maybe Text- , dbiMultiAZ :: Bool- , dbiVpcSecurityGroups :: [VpcSecurityGroupMembership]- , dbiDBInstanceIdentifier :: Text- , dbiPreferredBackupWindow :: Text- , dbiPreferredMaintenanceWindow :: Text- , dbiOptionGroupMembership :: Maybe OptionGroupMembership- , dbiAvailabilityZone :: Maybe Text- , dbiLatestRestorableTime :: Maybe UTCTime- , dbiReadReplicaDBInstanceIdentifiers :: [Text]- , dbiEngine :: Engine- , dbiPendingModifiedValues :: [PendingModifiedValue]- , dbiCharacterSetName :: Maybe Text- , dbiLicenseModel :: LicenseModel- , dbiSubnetGroup :: Maybe DBSubnetGroup- , dbiDBParameterGroups :: [DBParameterGroupStatus]- , dbiEndpoint :: Maybe Endpoint- , dbiEngineVersion :: Text- , dbiReadReplicaSourceDBInstanceIdentifier :: Maybe Text- , dbiPubliclyAccessible :: Bool- , dbiSecurityGroups :: [DBSecurityGroupMembership]- , dbiAutoMinorVersionUpgrade :: Bool- , dbiDBName :: Maybe Text- , dbiInstanceCreateTime :: Maybe UTCTime- , dbiAllocatedStorage :: Int -- ^ storage size in gigabytes- , dbiDBInstanceClass :: DBInstanceClass- , dbiMasterUsername :: Text+ { dbInstanceIops :: Maybe Int+ , dbInstanceBackupRetentionPeriod :: Int+ , dbInstanceDBInstanceStatus :: Maybe Text+ , dbInstanceMultiAZ :: Bool+ , dbInstanceVpcSecurityGroups :: [VpcSecurityGroupMembership]+ , dbInstanceDBInstanceIdentifier :: Text+ , dbInstancePreferredBackupWindow :: Text+ , dbInstancePreferredMaintenanceWindow :: Text+ , dbInstanceOptionGroupMembership :: Maybe OptionGroupMembership+ , dbInstanceAvailabilityZone :: Maybe Text+ , dbInstanceLatestRestorableTime :: Maybe UTCTime+ , dbInstanceReadReplicaDBInstanceIdentifiers :: [Text]+ , dbInstanceEngine :: Engine+ , dbInstancePendingModifiedValues :: [PendingModifiedValue]+ , dbInstanceCharacterSetName :: Maybe Text+ , dbInstanceLicenseModel :: LicenseModel+ , dbInstanceSubnetGroup :: Maybe DBSubnetGroup+ , dbInstanceDBParameterGroups :: [DBParameterGroupStatus]+ , dbInstanceEndpoint :: Maybe Endpoint+ , dbInstanceEngineVersion :: Text+ , dbInstanceReadReplicaSourceDBInstanceIdentifier :: Maybe Text+ , dbInstancePubliclyAccessible :: Bool+ , dbInstanceSecurityGroups :: [DBSecurityGroupMembership]+ , dbInstanceAutoMinorVersionUpgrade :: Bool+ , dbInstanceDBName :: Maybe Text+ , dbInstanceInstanceCreateTime :: Maybe UTCTime+ , dbInstanceAllocatedStorage :: Int -- ^ storage size in gigabytes+ , dbInstanceDBInstanceClass :: DBInstanceClass+ , dbInstanceMasterUsername :: Text } deriving (Show, Eq) data VpcSecurityGroupMembership = VpcSecurityGroupMembership- { vpcSecurityGroupMembershipStatus :: Text- , vpcSecurityGroupMembershipVpcSecurityGroupId :: Text+ { vpcSecurityGroupStatus :: Text+ , vpcSecurityGroupId :: Text } deriving (Show, Eq) data DBParameterGroupStatus = DBParameterGroupStatus- { dbpgsParameterApplyStatus :: Text- , dbpgsDBParameterGroupName :: Text+ { dbParameterGroupStatusStatus :: Text+ , dbParameterGroupStatusName :: Text } deriving (Show, Eq) data DBSecurityGroupMembership = DBSecurityGroupMembership- { dbsgmStatus :: Text- , dbsgmDBSecurityGroupName :: Text+ { dbSecurityGroupMembershipStatus :: Text+ , dbSecurityGroupMembershipName :: Text } deriving (Show, Eq) data Endpoint = Endpoint- { epPort :: Int- , epAddress :: Text+ { endpointPort :: Int+ , endpointAddress :: Text } deriving (Show, Eq) data OptionGroupMembership = OptionGroupMembership- { ogmOptionGroupName :: Text- , ogmStatus :: Text+ { optionGroupName :: Text+ , optionGroupStatus :: Text } deriving (Show, Eq) data PendingModifiedValue- = PMVAllocatedStorage Int- | PMVBackupRetentionPeriod Int- | PMVDBInstanceClass Text- | PMVEngineVersion Text- | PMVIops Int- | PMVMasterUserPassword Text- | PMVMultiAZ Bool- | PMVPort Int- | PMVDBInstanceIdentifier Text+ = PendingModifiedValueAllocatedStorage Int+ | PendingModifiedValueBackupRetentionPeriod Int+ | PendingModifiedValueDBInstanceClass Text+ | PendingModifiedValueEngineVersion Text+ | PendingModifiedValueIops Int+ | PendingModifiedValueMasterUserPassword Text+ | PendingModifiedValueMultiAZ Bool+ | PendingModifiedValuePort Int+ | PendingModifiedValueDBInstanceIdentifier Text deriving (Show, Eq) data CreateDBInstanceRequest = CreateDBInstanceRequest@@ -122,47 +122,13 @@ } deriving (Show, Eq) -data DBInstanceClass- = DBt1micro- | DBm1small- | DBm1medium- | DBm1large- | DBm1xlarge- | DBm2xlarge- | DBm22xlarge- | DBm24xlarge- deriving (Read, Eq)--instance Show DBInstanceClass where- show DBt1micro = "db.t1.micro"- show DBm1small = "db.m1.small"- show DBm1medium = "db.m1.medium"- show DBm1large = "db.m1.large"- show DBm1xlarge = "db.m1.xlarge"- show DBm2xlarge = "db.m2.xlarge"- show DBm22xlarge = "db.m2.2xlarge"- show DBm24xlarge = "db.m2.4xlarge"--data Engine- = EngineMySQL- | EngineOracleSE1- | EngineOracleSE- | EngineOracleEE- | EngineSqlServerEE- | EngineSqlServerSE- | EngineSqlServerEX- | EngineSqlServerWeb- deriving (Read, Eq)+-- | db.t1.micro, db.m1.small, db.m1.medium, db.m1.large,+-- db.m1.xlarge, db.m2.xlarge, db.m2.2xlarge, db.m2.4xlarge+type DBInstanceClass = Text -instance Show Engine where- show EngineMySQL = "MySQL"- show EngineOracleSE1 = "oracle-se1"- show EngineOracleSE = "oracle-se"- show EngineOracleEE = "oracle-ee"- show EngineSqlServerEE = "sqlserver-ee"- show EngineSqlServerSE = "sqlserver-se"- show EngineSqlServerEX = "sqlserver-ex"- show EngineSqlServerWeb = "sqlserver-web"+-- | mysql, oracle-se1, oracle-se, oracle-ee, sqlserver-ee,+-- sqlserver-se, sqlserver-ex, sqlserver-web+type Engine = Text data LicenseModel = LicenseIncluded@@ -192,16 +158,6 @@ } deriving (Show, Eq) -deriveFromText "DBInstanceClass"- [ "db.t1.micro", "db.m1.small", "db.m1.medium"- , "db.m1.large", "db.m1.xlarge", "db.m2.xlarge"- , "db.m2.2xlarge", "db.m2.4xlarge"- ]-deriveFromText "Engine"- [ "mysql", "oracle-se1", "oracle-se"- , "oracle-ee", "sqlserver-ee", "sqlserver-se"- , "sqlserver-ex", "sqlserver-web"- ] deriveFromText "LicenseModel" [ "license-included", "bring-your-own-license", "general-public-license" ]
AWS/RDS/Types/DBParameterGroup.hs view
@@ -5,8 +5,8 @@ import AWS.Lib.FromText (Text) data DBParameterGroup = DBParameterGroup- { dbpgDBParameterGroupFamily :: Text- , dbpgDescription :: Text- , dbpgDBParameterGroupName :: Text+ { dbParameterGroupFamily :: Text+ , dbParameterGroupDescription :: Text+ , dbParameterGroupName :: Text } deriving (Show, Eq)
AWS/RDS/Types/DBSecurityGroup.hs view
@@ -11,12 +11,12 @@ import AWS.Lib.FromText (deriveFromText, AddrRange, IPv4, Text) data DBSecurityGroup = DBSecurityGroup- { dbsgEC2SecurityGroups :: [EC2SecurityGroup]- , dbsgDBSecurityGroupDescription :: Text- , dbsgIPRanges :: [IPRange]- , dbsgVpcId :: Maybe Text- , dbsgOwnerId :: Text- , dbsgDBSecurityGroupName :: Text+ { dbSecurityGroupEC2SecurityGroups :: [EC2SecurityGroup]+ , dbSecurityGroupDescription :: Text+ , dbSecurityGroupIPRanges :: [IPRange]+ , dbSecurityGroupVpcId :: Maybe Text+ , dbSecurityGroupOwnerId :: Text+ , dbSecurityGroupName :: Text } deriving (Show, Eq)
AWS/RDS/Types/DBSnapshot.hs view
@@ -5,20 +5,20 @@ import AWS.Lib.FromText (Text, UTCTime) data DBSnapshot = DBSnapshot- { dbsPort :: Int- , dbsIops :: Maybe Int- , dbsEngine :: Text- , dbsStatus :: Text- , dbsSnapshotType :: Text- , dbsLicenseModel :: Text- , dbsDBInstanceIdentifier :: Text- , dbsEngineVersion :: Text- , dbsDBSnapshotIdentifier :: Text- , dbsSnapshotCreateTime :: Maybe UTCTime- , dbsVpcId :: Maybe Text- , dbsAvailabilityZone :: Text- , dbsInstanceCreateTime :: UTCTime- , dbsAllocatedStorage :: Int- , dbsMasterUsername :: Text+ { dbSnapshotPort :: Int+ , dbSnapshotIops :: Maybe Int+ , dbSnapshotEngine :: Text+ , dbSnapshotStatus :: Text+ , dbSnapshotType :: Text+ , dbSnapshotLicenseModel :: Text+ , dbSnapshotDBInstanceIdentifier :: Text+ , dbSnapshotEngineVersion :: Text+ , dbSnapshotIdentifier :: Text+ , dbSnapshotCreateTime :: Maybe UTCTime+ , dbSnapshotVpcId :: Maybe Text+ , dbSnapshotAvailabilityZone :: Text+ , dbSnapshotInstanceCreateTime :: UTCTime+ , dbSnapshotAllocatedStorage :: Int+ , dbSnapshotMasterUsername :: Text } deriving (Show, Eq)
AWS/RDS/Types/DBSubnetGroup.hs view
@@ -7,11 +7,11 @@ import AWS.Lib.FromText (Text) data DBSubnetGroup = DBSubnetGroup- { dbsngVpcId :: Text- , dbsngSubnetGroupStatus :: Text- , dbsngDBSubnetGroupDescription :: Text- , dbsngDBSubnetGroupName :: Text- , dbsngSubnets :: [Subnet]+ { dbSubnetGroupVpcId :: Text+ , dbSubnetGroupStatus :: Text+ , dbSubnetGroupDescription :: Text+ , dbSubnetGroupName :: Text+ , dbSubnets :: [Subnet] } deriving (Show, Eq) @@ -23,7 +23,7 @@ deriving (Show, Eq) data AvailabilityZone = AvailabilityZone- { azName :: Text- , azProvisionedIopsCapable :: Bool+ { availabilityZoneName :: Text+ , availabilityZoneProvisionedIopsCapable :: Bool } deriving (Show, Eq)
AWS/RDS/Types/Event.hs view
@@ -10,7 +10,7 @@ data Event = Event { eventMessage :: Text , eventSourceType :: SourceType- , eventEventCategories :: [Text]+ , eventCategories :: [Text] , eventDate :: UTCTime , eventSourceIdentifier :: Text }@@ -23,4 +23,5 @@ | SourceTypeDBSnapshot deriving (Show, Read, Eq) -deriveFromText "SourceType" ["db-instance", "db-parameter-group", "db-security-group", "db-snapshot"]+deriveFromText "SourceType"+ ["db-instance", "db-parameter-group", "db-security-group", "db-snapshot"]
AWS/RDS/Util.hs view
@@ -1,5 +1,6 @@ module AWS.RDS.Util ( wait+ , createDBInstanceRequest ) where import Control.Applicative ((<$>))@@ -10,6 +11,7 @@ import Safe import AWS.RDS+import AWS.RDS.Types wait :: (MonadIO m, Functor m)@@ -26,3 +28,35 @@ else do liftIO $ CC.threadDelay 10000000 wait f g rid++-- | copy from DBInstance+createDBInstanceRequest+ :: DBInstance+ -> Text -- ^ New DBIdentifier+ -> Text -- ^ MasterUserPassword+ -> CreateDBInstanceRequest+createDBInstanceRequest db newid passwd = CreateDBInstanceRequest+ (dbInstanceAllocatedStorage db)+ (Just $ dbInstanceAutoMinorVersionUpgrade db)+ (dbInstanceAvailabilityZone db)+ (Just $ dbInstanceBackupRetentionPeriod db)+ (dbInstanceCharacterSetName db)+ (dbInstanceDBInstanceClass db)+ newid+ (dbInstanceDBName db)+ (fmap dbParameterGroupStatusName $ headMay $ dbInstanceDBParameterGroups db)+ (map dbSecurityGroupMembershipName $ dbInstanceSecurityGroups db)+ (dbSubnetGroupName <$> dbInstanceSubnetGroup db)+ (dbInstanceEngine db)+ (Just $ dbInstanceEngineVersion db)+ (dbInstanceIops db)+ (Just $ dbInstanceLicenseModel db)+ passwd+ (dbInstanceMasterUsername db)+ (Just $ dbInstanceMultiAZ db)+ (optionGroupName <$> dbInstanceOptionGroupMembership db)+ (endpointPort <$> dbInstanceEndpoint db)+ (Just $ dbInstancePreferredBackupWindow db)+ (Just $ dbInstancePreferredMaintenanceWindow db)+ (Just $ dbInstancePubliclyAccessible db)+ (map vpcSecurityGroupId $ dbInstanceVpcSecurityGroups db)
aws-sdk.cabal view
@@ -1,5 +1,5 @@ name: aws-sdk-version: 0.11.0+version: 0.11.1 synopsis: AWS SDK for Haskell description: AWS (Amazon Web Services) sdk for Haskell. .@@ -137,6 +137,7 @@ , template-haskell , parallel , iproute >= 1.2.9+ , tls test-suite test type: exitcode-stdio-1.0