packages feed

aws-sdk 0.9.3.0 → 0.9.4

raw patch · 21 files changed

+677/−174 lines, 21 filesdep +tlsdep ~template-haskell

Dependencies added: tls

Dependency ranges changed: template-haskell

Files

AWS/EC2/Internal.hs view
@@ -25,6 +25,7 @@ import qualified Data.Conduit.List as CL import Data.XML.Types (Event) import Data.Text (Text)+import Data.Maybe (fromMaybe)  import AWS.Class import AWS.Credential@@ -48,7 +49,7 @@     -> GLSink Event m o     -> GLConduit Event m o itemConduit tag inner =-    maybe (()) id <$> elementM tag (listConduit "item" inner)+    fromMaybe (()) <$> elementM tag (listConduit "item" inner)  itemsSet :: MonadThrow m     => Text
AWS/EC2/NetworkInterfaceAttribute.hs view
@@ -24,7 +24,7 @@ describeNetworkInterfaceDescription     :: (MonadBaseControl IO m, MonadResource m)     => Text -- ^ The ID of the network interface.-    -> EC2 m Text+    -> EC2 m (Maybe Text) describeNetworkInterfaceDescription = describeNetworkInterfaceAttribute "description" $   element "description" $ getT "value" 
AWS/EC2/Types/Image.hs view
@@ -67,7 +67,7 @@  data EbsBlockDevice = EbsBlockDevice     { ebsSnapshotId :: Maybe Text-    , ebsVolumeSize :: Int+    , ebsVolumeSize :: Maybe Int     , ebsDeleteOnTermination :: Bool     , ebsVolumeType :: VolumeType     }
AWS/ELB/LoadBalancer.hs view
@@ -12,6 +12,14 @@     , setLoadBalancerListenerSSLCertificate     , createLoadBalancerListeners     , deleteLoadBalancerListeners+    , describeLoadBalancerPolicies+    , describeLoadBalancerPolicyTypes+    , createLoadBalancerPolicy+    , deleteLoadBalancerPolicy+    , describeInstanceHealth+    , configureHealthCheck+    , enableAvailabilityZonesForLoadBalancer+    , disableAvailabilityZonesForLoadBalancer     ) where  import Data.Text (Text)@@ -48,14 +56,7 @@     <$> members "SecurityGroups" text     <*> getT "CreatedTime"     <*> getT "LoadBalancerName"-    <*> element "HealthCheck"-        (HealthCheck-        <$> getT "Interval"-        <*> getT "Target"-        <*> getT "HealthyThreshold"-        <*> getT "Timeout"-        <*> getT "UnhealthyThreshold"-        )+    <*> element "HealthCheck" sinkHealthCheck     <*> getT "VPCId"     <*> members "ListenerDescriptions"         (ListenerDescription@@ -80,8 +81,8 @@         <*> members "OtherPolicies" text         <*> members "LBCookieStickinessPolicies"             (LBCookieStickinessPolicy-            <$> getT "CookieExpirationPeriod"-            <*> getT "PolicyName"+            <$> getT "PolicyName"+            <*> getT "CookieExpirationPeriod"             )         )     <*> members "AvailabilityZones" text@@ -104,6 +105,15 @@ sinkInstance :: MonadThrow m => GLSink Event m Instance sinkInstance = Instance <$> getT "InstanceId" +sinkHealthCheck :: MonadThrow m => GLSink Event m HealthCheck+sinkHealthCheck =+    HealthCheck+    <$> getT "Interval"+    <*> getT "Target"+    <*> getT "HealthyThreshold"+    <*> getT "Timeout"+    <*> getT "UnhealthyThreshold"+ createLoadBalancer     :: (MonadBaseControl IO m, MonadResource m)     => Text -- ^ LoadBalancerName@@ -258,4 +268,160 @@     params =         [ "LoadBalancerName" |= lb         , "LoadBalancerPorts.member" |.#= map toText ports+        ]++describeLoadBalancerPolicies+    :: (MonadBaseControl IO m, MonadResource m)+    => Maybe Text -- ^ The mnemonic name associated with the LoadBalancer.+    -> [Text] -- ^ The names of LoadBalancer policies you've created or Elastic Load Balancing sample policy names.+    -> ELB m [PolicyDescription]+describeLoadBalancerPolicies mlb policies =+    elbQuery "DescribeLoadBalancerPolicies" params $ members "PolicyDescriptions" sinkPolicyDescription+  where+    params =+        [ "LoadBalancerName" |=? mlb+        , "PolicyNames.member" |.#= policies+        ]++sinkPolicyDescription :: MonadThrow m => GLSink Event m PolicyDescription+sinkPolicyDescription =+    PolicyDescription+    <$> getT "PolicyName"+    <*> getT "PolicyTypeName"+    <*> members "PolicyAttributeDescriptions" sinkPolicyAttribute++sinkPolicyAttribute :: MonadThrow m => GLSink Event m PolicyAttribute+sinkPolicyAttribute =+    PolicyAttribute+    <$> getT "AttributeName"+    <*> getT "AttributeValue"++describeLoadBalancerPolicyTypes+    :: (MonadBaseControl IO m, MonadResource m)+    => [Text] -- ^ Specifies the name of the policy types.+    -> ELB m [PolicyType]+describeLoadBalancerPolicyTypes typeNames =+    elbQuery "DescribeLoadBalancerPolicyTypes" params $ members "PolicyTypeDescriptions" sinkPolicyType+  where+    params = ["PolicyTypeNames.member" |.#= typeNames]++sinkPolicyType :: MonadThrow m => GLSink Event m PolicyType+sinkPolicyType =+    PolicyType+    <$> members "PolicyAttributeTypeDescriptions" sinkPolicyAttributeType+    <*> getT "PolicyTypeName"+    <*> getT "Description"++sinkPolicyAttributeType :: MonadThrow m => GLSink Event m PolicyAttributeType+sinkPolicyAttributeType =+    PolicyAttributeType+    <$> getT "AttributeName"+    <*> getT "AttributeType"+    <*> getT "DefaultValue"+    <*> getT "Cardinality"+    <*> getT "Description"++createLoadBalancerPolicy+    :: (MonadBaseControl IO m, MonadResource m)+    => Text -- ^ The name associated with the LoadBalancer for which the policy is being created.+    -> [PolicyAttribute] -- ^ A list of attributes associated with the policy being created.+    -> Text -- ^ The name of the LoadBalancer policy being created.+    -> Text -- ^ The name of the base policy type being used to create this policy.+    -> ELB m ()+createLoadBalancerPolicy lb attrs name typeName =+    elbQuery "CreateLoadBalancerPolicy" params $ getT_ "CreateLoadBalancerPolicyResult"+  where+    params =+        [ "LoadBalancerName" |= lb+        , "PolicyAttributes.member" |.#. map toAttributeParams attrs+        , "PolicyName" |= name+        , "PolicyTypeName" |= typeName+        ]++toAttributeParams :: PolicyAttribute -> [QueryParam]+toAttributeParams PolicyAttribute{..} =+    [ "AttributeName" |= policyAttributeName+    , "AttributeValue" |= policyAttributeValue+    ]++deleteLoadBalancerPolicy+    :: (MonadBaseControl IO m, MonadResource m)+    => Text -- ^ The mnemonic name associated with the LoadBalancer.+    -> Text -- ^ The mnemonic name for the policy being deleted.+    -> ELB m ()+deleteLoadBalancerPolicy lb policyName =+    elbQuery "DeleteLoadBalancerPolicy" params $ getT_ "DeleteLoadBalancerPolicyResult"+  where+    params =+        [ "LoadBalancerName" |= lb+        , "PolicyName" |= policyName+        ]++describeInstanceHealth+    :: (MonadBaseControl IO m, MonadResource m)+    => [Text] -- ^ A list of instance IDs whose states are being queried.+    -> Text -- ^ The name associated with the LoadBalancer.+    -> ELB m [InstanceState]+describeInstanceHealth insts lb =+    elbQuery "DescribeInstanceHealth" params $ members "InstanceStates" sinkInstanceState+  where+    params =+        [ "Instances.member" |.#. map toInstanceParam insts+        , "LoadBalancerName" |= lb+        ]++sinkInstanceState :: MonadThrow m => GLSink Event m InstanceState+sinkInstanceState =+    InstanceState+    <$> getT "Description"+    <*> getT "InstanceId"+    <*> getT "State"+    <*> getT "ReasonCode"++configureHealthCheck+    :: (MonadBaseControl IO m, MonadResource m)+    => HealthCheck -- ^ A structure containing the configuration information for the new healthcheck.+    -> Text -- ^ The mnemonic name associated with the LoadBalancer.+    -> ELB m HealthCheck+configureHealthCheck hc lb =+    elbQuery "ConfigureHealthCheck" params $ element "HealthCheck" sinkHealthCheck+  where+    params =+        [ "HealthCheck" |. toHealthCheckParams hc+        , "LoadBalancerName" |= lb+        ]++toHealthCheckParams :: HealthCheck -> [QueryParam]+toHealthCheckParams HealthCheck{..} =+    [ "HealthyThreshold" |= toText healthCheckHealthyThreshold+    , "Interval" |= toText healthCheckInterval+    , "Target" |= healthCheckTarget+    , "Timeout" |= toText healthCheckTimeout+    , "UnhealthyThreshold" |= toText healthCheckUnhealthyThreshold+    ]++enableAvailabilityZonesForLoadBalancer+    :: (MonadBaseControl IO m, MonadResource m)+    => [Text] -- ^ A list of new Availability Zones for the LoadBalancer.+    -> Text -- ^ The name associated with the LoadBalancer.+    -> ELB m [Text] -- ^ An updated list of Availability Zones for the LoadBalancer.+enableAvailabilityZonesForLoadBalancer zones lb =+    elbQuery "EnableAvailabilityZonesForLoadBalancer" params $ members "AvailabilityZones" text+  where+    params =+        [ "AvailabilityZones.member" |.#= zones+        , "LoadBalancerName" |= lb+        ]++disableAvailabilityZonesForLoadBalancer+    :: (MonadBaseControl IO m, MonadResource m)+    => [Text] -- ^ A list of Availability Zones to be removed from the LoadBalancer.+    -> Text -- ^ The name associated with the LoadBalancer.+    -> ELB m [Text] -- ^ A list of updated Availability Zones for the LoadBalancer.+disableAvailabilityZonesForLoadBalancer zones lb =+    elbQuery "DisableAvailabilityZonesForLoadBalancer" params $ members "AvailabilityZones" text+  where+    params =+        [ "AvailabilityZones.member" |.#= zones+        , "LoadBalancerName" |= lb         ]
AWS/ELB/Types.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE TemplateHaskell #-} module AWS.ELB.Types     where @@ -73,8 +74,8 @@   deriving (Show, Eq)  data LBCookieStickinessPolicy = LBCookieStickinessPolicy-    { lbCookieStickinessPolicyCookieExpirationPeriod :: Integer-    , lbCookieStickinessPolicyPolicyName :: Text+    { lbCookieStickinessPolicyPolicyName :: Text+    , lbCookieStickinessPolicyCookieExpirationPeriod :: Integer     }   deriving (Show, Eq) @@ -83,3 +84,56 @@     , sourceSecurityGroupGroupName :: Text     }   deriving (Show, Eq)++data PolicyDescription = PolicyDescription+    { policyName :: Text+    , policyTypeName :: Text+    , policyAttributes :: [PolicyAttribute]+    }+  deriving (Show, Eq)++data PolicyAttribute = PolicyAttribute+    { policyAttributeName :: Text+    , policyAttributeValue :: Text+    }+  deriving (Show, Eq)++data PolicyType = PolicyType+    { policyTypeAttributeTypes :: [PolicyAttributeType]+    , policyTypeTypeName :: Text+    , policyTypeDescription :: Text+    }+  deriving (Show, Eq)++data PolicyAttributeType = PolicyAttributeType+    { policyAttributeTypeAttributeName :: Text+    , policyAttributeTypeAttributeType :: Text+    , policyAttributeTypeDefaultValue :: Maybe Text+    , policyAttributeTypeCardinality :: PolicyAttributeCardinality+    , policyAttributeTypeDescription :: Maybe Text+    }+  deriving (Show, Eq)++data PolicyAttributeCardinality+    = PolicyAttributeCardinalityOne+    | PolicyAttributeCardinalityZeroOrOne+    | PolicyAttributeCardinalityZeroOrMore+    | PolicyAttributeCardinalityOneOrMore+  deriving (Show, Eq, Read)++deriveFromText "PolicyAttributeCardinality" ["ONE", "ZERO_OR_ONE", "ZERO_OR_MORE", "ONE_OR_MORE"]++data InstanceState = InstanceState+    { instanceStateDescription :: Text+    , instanceStateInstanceId :: Text+    , instanceStateState :: InstanceStateState+    , instanceStateReasonCode :: Maybe Text+    }+  deriving (Show, Eq)++data InstanceStateState+    = InstanceStateInService+    | InstanceStateOutOfService+    deriving (Show, Eq, Read)++deriveFromText "InstanceStateState" ["InService", "OutOfService"]
AWS/Lib/Parser.hs view
@@ -28,6 +28,7 @@ import Control.Applicative import Data.Monoid ((<>)) import Control.Monad.Trans.Class (lift)+import Data.Maybe (fromMaybe)  import AWS.Class import AWS.Lib.FromText@@ -151,4 +152,5 @@     => Text     -> GLSink Event m a     -> GLSink Event m [a]-members name f = element name $ listConsumer "member" f+members name f = +    fromMaybe [] <$> elementM name (listConsumer "member" f)
AWS/RDS.hs view
@@ -7,8 +7,14 @@     , setRegion       -- * DBInstance     , module AWS.RDS.DBInstance+      -- * DBParameterGroup+    , module AWS.RDS.DBParameterGroup+      -- * DBSecurityGroup+    , module AWS.RDS.DBSecurityGroup       -- * DBSnapshot     , module AWS.RDS.DBSnapshot+      -- * DBSubnetGroup+    , module AWS.RDS.DBSubnetGroup       -- * Event     , module AWS.RDS.Event     ) where@@ -26,7 +32,10 @@ import AWS import AWS.RDS.Internal import AWS.RDS.DBInstance+import AWS.RDS.DBParameterGroup+import AWS.RDS.DBSecurityGroup import AWS.RDS.DBSnapshot+import AWS.RDS.DBSubnetGroup import AWS.RDS.Event  initialRDSContext :: HTTP.Manager -> AWSContext
AWS/RDS/DBInstance.hs view
@@ -61,23 +61,7 @@     <*> sinkPendingModifiedValues     <*> getT "CharacterSetName"     <*> getT "LicenseModel"-    <*> elementM "DBSubnetGroup"-        (DBSubnetGroup-        <$> getT "VpcId"-        <*> getT "SubnetGroupStatus"-        <*> getT "DBSubnetGroupDescription"-        <*> getT "DBSubnetGroupName"-        <*> elements "Subnet"-            (Subnet-            <$> getT "SubnetStatus"-            <*> getT "SubnetIdentifier"-            <*> element "SubnetAvailabilityZone"-                (AvailabilityZone-                <$> getT "Name"-                <*> getT "ProvisionedIopsCapable"-                )-            )-        )+    <*> elementM "DBSubnetGroup" dbSubnetGroupSink     <*> elements "DBParameterGroup"         (DBParameterGroupStatus         <$> getT "ParameterApplyStatus"
+ AWS/RDS/DBParameterGroup.hs view
@@ -0,0 +1,40 @@+{-# LANGUAGE FlexibleContexts #-}++module AWS.RDS.DBParameterGroup+    ( describeDBParameterGroups+    ) where++import Control.Applicative ((<$>), (<*>))+import Data.Conduit (GLSink, MonadBaseControl, MonadResource, MonadThrow)+import Data.Text (Text)+import Data.XML.Types (Event)++import AWS.Lib.Parser (getT)+import AWS.Lib.Query ((|=?))+import AWS.RDS.Internal (RDS, rdsQuery, elements)+import AWS.RDS.Types hiding (Event)+import AWS.Util (toText)++describeDBParameterGroups+    :: (MonadBaseControl IO m, MonadResource m)+    => Maybe Text -- ^ DBParameterGroupName+    -> Maybe Text -- ^ Marker+    -> Maybe Int -- ^ MaxRecords+    -> RDS m [DBParameterGroup]+describeDBParameterGroups name marker maxRecords =+    rdsQuery "DescribeDBParameterGroups" params $+        elements "DBParameterGroup" dbParameterGroupSink+  where+    params =+        [ "DBParameterGroupName" |=? name+        , "Marker" |=? marker+        , "MaxRecords" |=? toText <$> maxRecords+        ]++dbParameterGroupSink+    :: MonadThrow m+    => GLSink Event m DBParameterGroup+dbParameterGroupSink = DBParameterGroup+    <$> getT "DBParameterGroupFamily"+    <*> getT "Description"+    <*> getT "DBParameterGroupName"
+ AWS/RDS/DBSecurityGroup.hs view
@@ -0,0 +1,53 @@+{-# LANGUAGE FlexibleContexts #-}++module AWS.RDS.DBSecurityGroup+    ( describeDBSecurityGroups+    ) where++import Control.Applicative ((<$>), (<*>))+import Data.Conduit (GLSink, MonadBaseControl, MonadResource, MonadThrow)+import Data.Text (Text)+import Data.XML.Types (Event)++import AWS.Lib.Parser (getT)+import AWS.Lib.Query ((|=?))+import AWS.RDS.Internal (RDS, rdsQuery, elements)+import AWS.RDS.Types hiding (Event)+import AWS.Util (toText)++describeDBSecurityGroups+    :: (MonadBaseControl IO m, MonadResource m)+    => Maybe Text -- ^ DBSecurityGroupName+    -> Maybe Text -- ^ Marker+    -> Maybe Int -- ^ MaxRecords+    -> RDS m [DBSecurityGroup]+describeDBSecurityGroups name marker maxRecords =+    rdsQuery "DescribeDBSecurityGroups" params $+        elements "DBSecurityGroup" dbSecurityGroupSink+  where+    params =+        [ "DBSecurityGroupName" |=? name+        , "Marker" |=? marker+        , "MaxRecords" |=? toText <$> maxRecords+        ]++dbSecurityGroupSink+    :: MonadThrow m+    => GLSink Event m DBSecurityGroup+dbSecurityGroupSink = DBSecurityGroup+    <$> elements "EC2SecurityGroup" (+        EC2SecurityGroup+        <$> getT "Status"+        <*> getT "EC2SecurityGroupOwnerId"+        <*> getT "EC2SecurityGroupName"+        <*> getT "EC2SecurityGroupId"+        )+    <*> getT "DBSecurityGroupDescription"+    <*> elements "IPRange" (+        IPRange+        <$> getT "CIDRIP"+        <*> getT "Status"+        )+    <*> getT "VpcId"+    <*> getT "OwnerId"+    <*> getT "DBSecurityGroupName"
+ AWS/RDS/DBSubnetGroup.hs view
@@ -0,0 +1,30 @@+{-# LANGUAGE FlexibleContexts #-}++module AWS.RDS.DBSubnetGroup+    ( describeDBSubnetGroups+    ) where++import Control.Applicative ((<$>))+import Data.Conduit+import Data.Text (Text)++import AWS.Lib.Query ((|=?))+import AWS.RDS.Internal+import AWS.RDS.Types (DBSubnetGroup)+import AWS.Util (toText)++describeDBSubnetGroups+    :: (MonadBaseControl IO m, MonadResource m)+    => Maybe Text -- ^ DBSubnetGroupName+    -> Maybe Text -- ^ Marker+    -> Maybe Int -- ^ MaxRecords+    -> RDS m [DBSubnetGroup]+describeDBSubnetGroups name marker maxRecords =+    rdsQuery "DescribeDBSubnetGroups" params $+        elements "DBSubnetGroup" dbSubnetGroupSink+  where+    params =+        [ "DBSubnetGroupName" |=? name+        , "Marker" |=? marker+        , "MaxRecords" |=? toText <$> maxRecords+        ]
AWS/RDS/Internal.hs view
@@ -1,17 +1,29 @@ {-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}  module AWS.RDS.Internal-    where+    ( apiVersion+    , RDS+    , rdsQuery+    , elements+    , elements'+#ifdef DEBUG+    , rdsQueryDebug+#endif+    , dbSubnetGroupSink+    ) where +import Control.Applicative ((<$>), (<*>)) import Data.ByteString (ByteString) import Data.Text (Text) import Data.Conduit import Data.Monoid ((<>)) import Data.XML.Types (Event(..))+import Data.Maybe (fromMaybe)  import AWS.Class import AWS.Lib.Query import AWS.Lib.Parser+import AWS.RDS.Types (DBSubnetGroup(..), Subnet(..), AvailabilityZone(..))  apiVersion :: ByteString apiVersion = "2013-01-10"@@ -32,12 +44,13 @@     -> GLSink Event m [a] elements name = elements' (name <> "s") name -elements' :: MonadThrow m+elements' :: forall m a . MonadThrow m     => Text     -> Text     -> GLSink Event m a     -> GLSink Event m [a]-elements' setName itemName = element setName . listConsumer itemName+elements' setName itemName inner =+    fromMaybe [] <$> elementM setName (listConsumer itemName inner)  #ifdef DEBUG rdsQueryDebug@@ -47,3 +60,22 @@     -> RDS m a rdsQueryDebug = debugQuery apiVersion #endif++dbSubnetGroupSink+    :: MonadThrow m+    => GLSink Event m DBSubnetGroup+dbSubnetGroupSink = DBSubnetGroup+    <$> getT "VpcId"+    <*> getT "SubnetGroupStatus"+    <*> getT "DBSubnetGroupDescription"+    <*> getT "DBSubnetGroupName"+    <*> elements "Subnet" (+        Subnet+        <$> getT "SubnetStatus"+        <*> getT "SubnetIdentifier"+        <*> element "SubnetAvailabilityZone" (+            AvailabilityZone+            <$> getT "Name"+            <*> getT "ProvisionedIopsCapable"+            )+        )
AWS/RDS/Types.hs view
@@ -1,138 +1,21 @@-{-# LANGUAGE TemplateHaskell #-} module AWS.RDS.Types-    where--import AWS.Lib.FromText--data DBInstance = DBInstance-    { dbiIops :: Maybe Int-    , dbiBackupRetentionPeriod :: Int-    , dbiDBInstanceStatus :: Text-    , dbiMultiAZ :: Bool-    , dbiVpcSecurityGroups :: [VpcSecurityGroupMembership]-    , dbiDBInstanceIdentifier :: Text-    , dbiPreferredBackupWindow :: Text-    , dbiPreferredMaintenanceWindow :: Text-    , dbiOptionGroupMembership :: Maybe OptionGroupMembership-    , dbiAvailabilityZone :: Text-    , dbiLatestRestorableTime :: Maybe UTCTime-    , dbiReadReplicaDBInstanceIdentifiers :: [Text]-    , dbiEngine :: Text-    , dbiPendingModifiedValues :: [PendingModifiedValue]-    , dbiCharacterSetName :: Maybe Text-    , dbiLicenseModel :: Text-    , 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 :: Text-    , dbiMasterUsername :: Text-    }-  deriving (Show, Eq)--data VpcSecurityGroupMembership = VpcSecurityGroupMembership-    { vpcSecurityGroupMembershipStatus :: Text-    , vpcSecurityGroupMembershipVpcSecurityGroupId :: Text-    }-  deriving (Show, Eq)--data DBParameterGroupStatus = DBParameterGroupStatus-    { dbpgsParameterApplyStatus :: Text-    , dbpgsDBParameterGroupName :: Text-    }-  deriving (Show, Eq)--data DBSecurityGroupMembership = DBSecurityGroupMembership-    { dbsgmStatus :: Text-    , dbsgmDBSecurityGroupName :: Text-    }-  deriving (Show, Eq)--data DBSubnetGroup = DBSubnetGroup-    { dbsngVpcId :: Text-    , dbsngSubnetGroupStatus :: Text-    , dbsngDBSubnetGroupDescription :: Text-    , dbsngDBSubnetGroupName :: Text-    , dbsngSubnets :: [Subnet]-    }-  deriving (Show, Eq)--data Subnet = Subnet-    { subnetStatus :: Text-    , subnetIdentifier :: Text-    , subnetAvailabilityZone :: AvailabilityZone-    }-  deriving (Show, Eq)--data AvailabilityZone = AvailabilityZone-    { azName :: Text-    , azProvisionedIopsCapable :: Bool-    }-  deriving (Show, Eq)--data Endpoint = Endpoint-    { epPort :: Int-    , epAddress :: Text-    }-  deriving (Show, Eq)--data OptionGroupMembership = OptionGroupMembership-    { ogmOptionGroupName :: Text-    , ogmStatus :: Text-    }-  deriving (Show, Eq)--data PendingModifiedValue-    = PMVAllocatedStorage Int-    | PMVBackupRetentionPeriod Int-    | PMVDBInstanceClass Text-    | PMVEngineVersion Text-    | PMVIops Int-    | PMVMasterUserPassword Text-    | PMVMultiAZ Bool-    | PMVPort Int-  deriving (Show, Eq)--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-    }-  deriving (Show, Eq)--data Event = Event-    { eventMessage :: Text-    , eventSourceType :: SourceType-    , eventEventCategories :: [Text]-    , eventDate :: UTCTime-    , eventSourceIdentifier :: Text-    }-  deriving (Show, Eq)--data SourceType-    = SourceTypeDBInstance-    | SourceTypeDBParameterGroup-    | SourceTypeDBSecurityGroup-    | SourceTypeDBSnapshot-  deriving (Show, Read, Eq)+    ( -- * DBInstance+      module AWS.RDS.Types.DBInstance+      -- * DBParameterGroup+    , module AWS.RDS.Types.DBParameterGroup+      -- * DBSecurityGroup+    , module AWS.RDS.Types.DBSecurityGroup+      -- * DBSnapshot+    , module AWS.RDS.Types.DBSnapshot+      -- * DBSubnetGroup+    , module AWS.RDS.Types.DBSubnetGroup+      -- * Event+    , module AWS.RDS.Types.Event+    ) where -deriveFromText "SourceType" ["db-instance", "db-parameter-group", "db-security-group", "db-snapshot"]+import AWS.RDS.Types.DBInstance+import AWS.RDS.Types.DBParameterGroup+import AWS.RDS.Types.DBSecurityGroup+import AWS.RDS.Types.DBSnapshot+import AWS.RDS.Types.DBSubnetGroup+import AWS.RDS.Types.Event
+ AWS/RDS/Types/DBInstance.hs view
@@ -0,0 +1,86 @@+module AWS.RDS.Types.DBInstance+    ( DBInstance(..)+    , VpcSecurityGroupMembership(..)+    , DBParameterGroupStatus(..)+    , DBSecurityGroupMembership(..)+    , Endpoint(..)+    , OptionGroupMembership(..)+    , PendingModifiedValue(..)+    ) where++import AWS.Lib.FromText (Text, UTCTime)+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 :: Text+    , dbiLatestRestorableTime :: Maybe UTCTime+    , dbiReadReplicaDBInstanceIdentifiers :: [Text]+    , dbiEngine :: Text+    , dbiPendingModifiedValues :: [PendingModifiedValue]+    , dbiCharacterSetName :: Maybe Text+    , dbiLicenseModel :: Text+    , 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 :: Text+    , dbiMasterUsername :: Text+    }+  deriving (Show, Eq)++data VpcSecurityGroupMembership = VpcSecurityGroupMembership+    { vpcSecurityGroupMembershipStatus :: Text+    , vpcSecurityGroupMembershipVpcSecurityGroupId :: Text+    }+  deriving (Show, Eq)++data DBParameterGroupStatus = DBParameterGroupStatus+    { dbpgsParameterApplyStatus :: Text+    , dbpgsDBParameterGroupName :: Text+    }+  deriving (Show, Eq)++data DBSecurityGroupMembership = DBSecurityGroupMembership+    { dbsgmStatus :: Text+    , dbsgmDBSecurityGroupName :: Text+    }+  deriving (Show, Eq)++data Endpoint = Endpoint+    { epPort :: Int+    , epAddress :: Text+    }+  deriving (Show, Eq)++data OptionGroupMembership = OptionGroupMembership+    { ogmOptionGroupName :: Text+    , ogmStatus :: Text+    }+  deriving (Show, Eq)++data PendingModifiedValue+    = PMVAllocatedStorage Int+    | PMVBackupRetentionPeriod Int+    | PMVDBInstanceClass Text+    | PMVEngineVersion Text+    | PMVIops Int+    | PMVMasterUserPassword Text+    | PMVMultiAZ Bool+    | PMVPort Int+  deriving (Show, Eq)
+ AWS/RDS/Types/DBParameterGroup.hs view
@@ -0,0 +1,12 @@+module AWS.RDS.Types.DBParameterGroup+    ( DBParameterGroup(..)+    ) where++import AWS.Lib.FromText (Text)++data DBParameterGroup = DBParameterGroup+    { dbpgDBParameterGroupFamily :: Text+    , dbpgDescription :: Text+    , dbpgDBParameterGroupName :: Text+    }+  deriving (Show, Eq)
+ AWS/RDS/Types/DBSecurityGroup.hs view
@@ -0,0 +1,54 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.RDS.Types.DBSecurityGroup+    ( DBSecurityGroup(..)+    , EC2SecurityGroup(..)+    , EC2SecurityGroupStatus(..)+    , IPRange(..)+    , IPRangeStatus(..)+    ) where++import AWS.Lib.FromText (deriveFromText, AddrRange, IPv4, Text)++data DBSecurityGroup = DBSecurityGroup+    { dbsgEC2SecurityGroups :: [EC2SecurityGroup]+    , dbsgDBSecurityGroupDescription :: Text+    , dbsgIPRanges :: [IPRange]+    , dbsgVpcId :: Maybe Text+    , dbsgOwnerId :: Text+    , dbsgDBSecurityGroupName :: Text+    }+  deriving (Show, Eq)++data EC2SecurityGroup = EC2SecurityGroup+    { ec2SecurityGroupStatus :: EC2SecurityGroupStatus+    , ec2SecurityGroupOwnerId :: Maybe Text+    , ec2SecurityGroupName :: Text+    , ec2SecurityGroupId :: Maybe Text+    }+  deriving (Show, Eq)++data EC2SecurityGroupStatus+    = EC2SecurityGroupStatusAuthorizing+    | EC2SecurityGroupStatusAuthorized+    | EC2SecurityGroupStatusRevoking+    | EC2SecurityGroupStatusRevoked+  deriving (Show, Read, Eq)++data IPRange = IPRange+    { ipRangeCidrIp :: AddrRange IPv4+    , ipRangeStatus :: IPRangeStatus+    }+  deriving (Show, Eq)++data IPRangeStatus+    = IPRangeStatusAuthorizing+    | IPRangeStatusAuthorized+    | IPRangeStatusRevoking+    | IPRangeStatusRevoked+  deriving (Show, Read, Eq)++deriveFromText "EC2SecurityGroupStatus"+    ["authorizing", "authorized", "revoking", "revoked"]+deriveFromText "IPRangeStatus"+    ["authorizing", "authorized", "revoking", "revoked"]
+ AWS/RDS/Types/DBSnapshot.hs view
@@ -0,0 +1,24 @@+module AWS.RDS.Types.DBSnapshot+    ( DBSnapshot(..)+    ) where++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+    }+  deriving (Show, Eq)
+ AWS/RDS/Types/DBSubnetGroup.hs view
@@ -0,0 +1,29 @@+module AWS.RDS.Types.DBSubnetGroup+    ( DBSubnetGroup(..)+    , Subnet(..)+    , AvailabilityZone(..)+    ) where++import AWS.Lib.FromText (Text)++data DBSubnetGroup = DBSubnetGroup+    { dbsngVpcId :: Text+    , dbsngSubnetGroupStatus :: Text+    , dbsngDBSubnetGroupDescription :: Text+    , dbsngDBSubnetGroupName :: Text+    , dbsngSubnets :: [Subnet]+    }+  deriving (Show, Eq)++data Subnet = Subnet+    { subnetStatus :: Text+    , subnetIdentifier :: Text+    , subnetAvailabilityZone :: AvailabilityZone+    }+  deriving (Show, Eq)++data AvailabilityZone = AvailabilityZone+    { azName :: Text+    , azProvisionedIopsCapable :: Bool+    }+  deriving (Show, Eq)
+ AWS/RDS/Types/Event.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE TemplateHaskell #-}++module AWS.RDS.Types.Event+    ( Event(..)+    , SourceType(..)+    ) where++import AWS.Lib.FromText (deriveFromText, Text, UTCTime)++data Event = Event+    { eventMessage :: Text+    , eventSourceType :: SourceType+    , eventEventCategories :: [Text]+    , eventDate :: UTCTime+    , eventSourceIdentifier :: Text+    }+  deriving (Show, Eq)++data SourceType+    = SourceTypeDBInstance+    | SourceTypeDBParameterGroup+    | SourceTypeDBSecurityGroup+    | SourceTypeDBSnapshot+  deriving (Show, Read, Eq)++deriveFromText "SourceType" ["db-instance", "db-parameter-group", "db-security-group", "db-snapshot"]
Tests/Main.hs view
@@ -33,7 +33,10 @@      -- RDS Tests     runDBInstanceTests+    runDBParameterGroupTests+    runDBSecurityGroupTests     runDBSnapshotTests+    runDBSubnetGroupTests     runEventTests      -- ELB Tests
aws-sdk.cabal view
@@ -1,5 +1,5 @@ name:                aws-sdk-version:             0.9.3.0+version:             0.9.4 synopsis:            AWS SDK for Haskell description: AWS (Amazon Web Services) sdk for Haskell.              .@@ -10,6 +10,11 @@ license:             BSD3 license-file:        LICENSE author:              Yusuke Nomura <yunomu@gmail.com>+                   , Seizan Shimazaki <seizans@gmail.com>+                   , Daisuke Matsumoto <dai@daimatz.net>+                   , amkkun <amkkun@gmail.com>+                   , eagletmt <eagletmt@gmail.com>+                   , HATATANI Shinta <gamaguchi@gmail.com> maintainer:          Yusuke Nomura <yunomu@gmail.com> homepage:            http://worksap-ate.github.com/aws-sdk copyright:           AWS SDK for Haskell Developers@@ -79,8 +84,17 @@                    , AWS.Lib.Query                    , AWS.RDS.Internal                    , AWS.RDS.DBInstance+                   , AWS.RDS.DBParameterGroup+                   , AWS.RDS.DBSecurityGroup                    , AWS.RDS.DBSnapshot+                   , AWS.RDS.DBSubnetGroup                    , AWS.RDS.Event+                   , AWS.RDS.Types.DBInstance+                   , AWS.RDS.Types.DBParameterGroup+                   , AWS.RDS.Types.DBSecurityGroup+                   , AWS.RDS.Types.DBSnapshot+                   , AWS.RDS.Types.DBSubnetGroup+                   , AWS.RDS.Types.Event                    , AWS.ELB.Internal                    , AWS.ELB.LoadBalancer                    , AWS.CloudWatch.Internal@@ -111,7 +125,7 @@                    , lifted-base                    , transformers-base                    , strptime-                   , template-haskell+                   , template-haskell == 2.7.0.0                    , parallel                    , iproute >= 1.2.9 @@ -136,6 +150,7 @@                  , HUnit                  , lifted-base                  , iproute+                 , tls  source-repository head     type:            git