aws-ec2 0.2.2 → 0.3
raw patch · 49 files changed
+456/−44 lines, 49 filesdep +yamldep ~awsdep ~basenew-component:exe:run-instPVP ok
version bump matches the API change (PVP)
Dependencies added: yaml
Dependency ranges changed: aws, base
API changes (from Hackage documentation)
- Aws.Ec2.TH: ec2ValueTransaction :: Name -> String -> DecsQ
- Aws.Ec2.TH: ec2ValueTransactionDef :: Name -> Name -> String -> String -> DecsQ
- Aws.Elb.TH: elbValueTransaction :: Name -> String -> DecsQ
- Aws.Elb.TH: elbValueTransactionDef :: Name -> Name -> String -> String -> DecsQ
- Aws.Query.TH: queryValueTransaction :: Name -> String -> DecsQ
- Aws.Query.TH: queryValueTransactionDef :: Name -> Name -> String -> Name -> Name -> String -> String -> DecsQ
+ Aws.Ec2.Commands.RunInstances: run_associatePublicIpAddress :: RunInstances -> Bool
+ Aws.Ec2.Commands.StartInstances: StartInstances :: [Text] -> StartInstances
+ Aws.Ec2.Commands.StartInstances: data StartInstances
+ Aws.Ec2.Commands.StartInstances: instance ResponseConsumer StartInstances Value
+ Aws.Ec2.Commands.StartInstances: instance Show StartInstances
+ Aws.Ec2.Commands.StartInstances: instance SignQuery StartInstances
+ Aws.Ec2.Commands.StartInstances: instance Transaction StartInstances Value
+ Aws.Ec2.Commands.StartInstances: start_instanceIds :: StartInstances -> [Text]
+ Aws.Ec2.Commands.StopInstances: StopInstances :: [Text] -> StopInstances
+ Aws.Ec2.Commands.StopInstances: data StopInstances
+ Aws.Ec2.Commands.StopInstances: instance ResponseConsumer StopInstances Value
+ Aws.Ec2.Commands.StopInstances: instance Show StopInstances
+ Aws.Ec2.Commands.StopInstances: instance SignQuery StopInstances
+ Aws.Ec2.Commands.StopInstances: instance Transaction StopInstances Value
+ Aws.Ec2.Commands.StopInstances: stop_instanceIds :: StopInstances -> [Text]
+ Aws.Ec2.Commands.TerminateInstances: TerminateInstances :: [Text] -> TerminateInstances
+ Aws.Ec2.Commands.TerminateInstances: data TerminateInstances
+ Aws.Ec2.Commands.TerminateInstances: instance ResponseConsumer TerminateInstances Value
+ Aws.Ec2.Commands.TerminateInstances: instance Show TerminateInstances
+ Aws.Ec2.Commands.TerminateInstances: instance SignQuery TerminateInstances
+ Aws.Ec2.Commands.TerminateInstances: instance Transaction TerminateInstances Value
+ Aws.Ec2.Commands.TerminateInstances: term_instanceIds :: TerminateInstances -> [Text]
+ Aws.Elb.Commands.CreateAppCookieStickinessPolicy: CreateAppCookieStickinessPolicy :: Text -> Text -> Text -> CreateAppCookieStickinessPolicy
+ Aws.Elb.Commands.CreateAppCookieStickinessPolicy: cacsp_cookieName :: CreateAppCookieStickinessPolicy -> Text
+ Aws.Elb.Commands.CreateAppCookieStickinessPolicy: cacsp_loadBalancerName :: CreateAppCookieStickinessPolicy -> Text
+ Aws.Elb.Commands.CreateAppCookieStickinessPolicy: cacsp_policyName :: CreateAppCookieStickinessPolicy -> Text
+ Aws.Elb.Commands.CreateAppCookieStickinessPolicy: data CreateAppCookieStickinessPolicy
+ Aws.Elb.Commands.CreateAppCookieStickinessPolicy: instance ResponseConsumer CreateAppCookieStickinessPolicy Value
+ Aws.Elb.Commands.CreateAppCookieStickinessPolicy: instance Show CreateAppCookieStickinessPolicy
+ Aws.Elb.Commands.CreateAppCookieStickinessPolicy: instance SignQuery CreateAppCookieStickinessPolicy
+ Aws.Elb.Commands.CreateAppCookieStickinessPolicy: instance Transaction CreateAppCookieStickinessPolicy Value
- Aws.Ec2: class (SignQuery r, ResponseConsumer r a, Loggable (ResponseMetadata a)) => Transaction r a | r -> a, a -> r
+ Aws.Ec2: class (SignQuery r, ResponseConsumer r a, Loggable (ResponseMetadata a)) => Transaction r a | r -> a
- Aws.Ec2.Commands.RunInstances: RunInstances :: Text -> (Int, Int) -> Text -> [Text] -> [BlockDeviceMapping] -> Maybe Text -> Bool -> Bool -> Maybe InstanceInitiatedShutdownBehavior -> Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> RunInstances
+ Aws.Ec2.Commands.RunInstances: RunInstances :: Text -> (Int, Int) -> Text -> [Text] -> [BlockDeviceMapping] -> Maybe Text -> Bool -> Bool -> Maybe InstanceInitiatedShutdownBehavior -> Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Bool -> RunInstances
- Aws.Elb: class (SignQuery r, ResponseConsumer r a, Loggable (ResponseMetadata a)) => Transaction r a | r -> a, a -> r
+ Aws.Elb: class (SignQuery r, ResponseConsumer r a, Loggable (ResponseMetadata a)) => Transaction r a | r -> a
Files
- aws-ec2.cabal +33/−5
- cmd/run-inst.hs +153/−0
- include/config.h +70/−0
- src/Aws/CloudWatch/Commands/PutMetricData.hs +1/−1
- src/Aws/Ec2.hs +6/−0
- src/Aws/Ec2/Commands/AttachInternetGateway.hs +1/−1
- src/Aws/Ec2/Commands/AttachVolume.hs +1/−1
- src/Aws/Ec2/Commands/AuthorizeSecurityGroupIngress.hs +1/−1
- src/Aws/Ec2/Commands/CreateInternetGateway.hs +1/−1
- src/Aws/Ec2/Commands/CreateRoute.hs +1/−1
- src/Aws/Ec2/Commands/CreateSecurityGroup.hs +1/−1
- src/Aws/Ec2/Commands/CreateSubnet.hs +1/−1
- src/Aws/Ec2/Commands/CreateTags.hs +1/−1
- src/Aws/Ec2/Commands/CreateVolume.hs +1/−1
- src/Aws/Ec2/Commands/CreateVpc.hs +1/−1
- src/Aws/Ec2/Commands/DescribeAvailabilityZones.hs +1/−1
- src/Aws/Ec2/Commands/DescribeImages.hs +1/−1
- src/Aws/Ec2/Commands/DescribeInstanceStatus.hs +1/−1
- src/Aws/Ec2/Commands/DescribeInstances.hs +1/−1
- src/Aws/Ec2/Commands/DescribeKeyPairs.hs +1/−1
- src/Aws/Ec2/Commands/DescribeRegions.hs +1/−1
- src/Aws/Ec2/Commands/DescribeRouteTables.hs +1/−1
- src/Aws/Ec2/Commands/DescribeSecurityGroups.hs +1/−1
- src/Aws/Ec2/Commands/DescribeSubnets.hs +1/−1
- src/Aws/Ec2/Commands/DescribeTags.hs +1/−1
- src/Aws/Ec2/Commands/DescribeVolumeStatus.hs +1/−1
- src/Aws/Ec2/Commands/DescribeVolumes.hs +1/−1
- src/Aws/Ec2/Commands/DescribeVpcs.hs +1/−1
- src/Aws/Ec2/Commands/GetConsoleOutput.hs +1/−1
- src/Aws/Ec2/Commands/ImportKeyPair.hs +1/−1
- src/Aws/Ec2/Commands/ModifyVpcAttribute.hs +1/−1
- src/Aws/Ec2/Commands/RunInstances.hs +3/−2
- src/Aws/Ec2/Commands/StartInstances.hs +37/−0
- src/Aws/Ec2/Commands/StopInstances.hs +38/−0
- src/Aws/Ec2/Commands/TerminateInstances.hs +38/−0
- src/Aws/Ec2/TH.hs +4/−0
- src/Aws/Elb/Commands/ConfigureHealthCheck.hs +1/−1
- src/Aws/Elb/Commands/CreateAppCookieStickinessPolicy.hs +29/−0
- src/Aws/Elb/Commands/CreateLBCookieStickinessPolicy.hs +1/−1
- src/Aws/Elb/Commands/CreateLoadBalancer.hs +1/−1
- src/Aws/Elb/Commands/DeregisterInstancesFromLoadBalancer.hs +1/−1
- src/Aws/Elb/Commands/DescribeInstanceHealth.hs +1/−1
- src/Aws/Elb/Commands/DescribeLoadBalancerPolicies.hs +1/−1
- src/Aws/Elb/Commands/DescribeLoadBalancers.hs +1/−1
- src/Aws/Elb/Commands/ModifyLoadBalancerAttributes.hs +1/−1
- src/Aws/Elb/Commands/RegisterInstancesWithLoadBalancer.hs +1/−1
- src/Aws/Elb/Commands/SetLoadBalancerPoliciesOfListener.hs +1/−1
- src/Aws/Elb/TH.hs +4/−0
- src/Aws/Query/TH.hs +4/−0
aws-ec2.cabal view
@@ -1,5 +1,5 @@ name: aws-ec2-version: 0.2.2+version: 0.3 synopsis: AWS EC2/VPC, ELB and CloudWatch client library for Haskell license-file: LICENSE license: BSD3@@ -12,10 +12,12 @@ homepage: https://github.com/zalora/aws-ec2 description: AWS client library with focus on infrastructure services like EC2 (with VPC), ELB and CloudWatch, extension to <https://github.com/aristidb/aws>. +extra-source-files: include/config.h+ source-repository this type: git location: https://github.com/zalora/aws-ec2.git- tag: 0.2.2+ tag: 0.3 source-repository head type: git@@ -66,6 +68,9 @@ , Aws.Ec2.Commands.ImportKeyPair , Aws.Ec2.Commands.ModifyVpcAttribute , Aws.Ec2.Commands.RunInstances+ , Aws.Ec2.Commands.StartInstances+ , Aws.Ec2.Commands.StopInstances+ , Aws.Ec2.Commands.TerminateInstances , Aws.Elb , Aws.Elb.Core@@ -79,6 +84,7 @@ , Aws.Elb.Commands.ModifyLoadBalancerAttributes , Aws.Elb.Commands.RegisterInstancesWithLoadBalancer , Aws.Elb.Commands.DeregisterInstancesFromLoadBalancer+ , Aws.Elb.Commands.CreateAppCookieStickinessPolicy , Aws.Elb.Commands.CreateLBCookieStickinessPolicy , Aws.Elb.Commands.SetLoadBalancerPoliciesOfListener , Aws.Elb.Commands.ConfigureHealthCheck@@ -107,11 +113,12 @@ , http-conduit , conduit-extra , xml-conduit- , aws >= 0.9.3+ , aws >= 0.9.4 hs-source-dirs: src default-language: Haskell2010- default-extensions: OverloadedStrings, TemplateHaskell+ default-extensions: OverloadedStrings, TemplateHaskell, CPP+ cpp-options: --include=include/config.h executable put-metric main-is: put-metric.hs@@ -120,9 +127,30 @@ , bytestring , text , optparse-applicative- , aws >= 0.9.3+ , aws >= 0.9.4 , aws-ec2 hs-source-dirs: cmd default-language: Haskell2010 default-extensions: OverloadedStrings+ ghc-options: -static++executable run-inst+ main-is: run-inst.hs+ build-depends:+ base+ , bytestring+ , text+ , optparse-applicative+ , aws >= 0.9.4+ , aws-ec2+ , yaml+ , vector+ , containers+ , unordered-containers+ , aeson++ hs-source-dirs: cmd+ default-language: Haskell2010+ default-extensions: OverloadedStrings+ ghc-options: -static
+ cmd/run-inst.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE FlexibleContexts, TypeFamilies #-}+{-# LANGUAGE OverlappingInstances #-}+{-# LANGUAGE ScopedTypeVariables #-}++module Main where++import Control.Monad+import Options.Applicative++import qualified Data.ByteString.Char8 as B+import qualified Data.Text as T++import Aws+import Aws.Query hiding (optional)+import Aws (Configuration(..), LogLevel(..), defaultLog)+import Aws.Ec2+import qualified Data.Yaml as Y+import qualified Data.HashMap.Strict as M+import qualified Data.Vector as V+import Data.Aeson++configuration :: Bool -> IO Configuration+configuration useMetadata = do+ cr <- load+ case cr of+ Nothing -> error "could not locate aws credentials"+ Just cr' -> return Configuration { timeInfo = Timestamp+ , credentials = cr'+ , logger = defaultLog Warning+ }+ where+ load = if useMetadata then loadCredentialsFromInstanceMetadata+ else loadCredentialsDefault++runInst :: String -> String -> String -> Maybe String -> Bool -> Bool -> IO ()+runInst region imageid instType subnetId publicIp useMetadata = do+ cfg <- configuration useMetadata+ val <- Aws.simpleAws cfg (QueryAPIConfiguration $ B.pack region) $+ RunInstances+ (T.pack imageid)+ (1,1)+ (T.pack instType)+ []+ []+ (T.pack <$> subnetId)+ False+ False+ (Just Stop)+ False+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ Nothing+ publicIp+ B.putStr $ Y.encode val+ return ()++listInst :: String -> Bool -> IO ()+listInst region useMetadata = do+ cfg <- configuration useMetadata+ inst <- Aws.simpleAws cfg (QueryAPIConfiguration $ B.pack region) $ DescribeInstances []+ B.putStr $ Y.encode inst+ return ()++listImg :: String -> Bool -> IO ()+listImg region useMetadata = do+ cfg <- configuration useMetadata+ imageSet <- Aws.simpleAws cfg (QueryAPIConfiguration $ B.pack region) $ DescribeImages []+ B.putStr $ Y.encode imageSet+ return ()++listStatus :: String -> String -> Bool -> IO ()+listStatus region instanceid useMetadata = do+ cfg <- configuration useMetadata+ imageSet <- Aws.simpleAws cfg (QueryAPIConfiguration $ B.pack region) $ DescribeInstanceStatus [T.pack instanceid]+ B.putStr $ Y.encode imageSet+ return ()+++termInst :: String -> String -> Bool -> IO ()+termInst region instanceid useMetadata = do+ cfg <- configuration useMetadata+ imageSet <- Aws.simpleAws cfg (QueryAPIConfiguration $ B.pack region) $ TerminateInstances [T.pack instanceid]+ B.putStr $ Y.encode imageSet+ return ()++startInst :: String -> String -> Bool -> IO ()+startInst region instanceid useMetadata = do+ cfg <- configuration useMetadata+ imageSet <- Aws.simpleAws cfg (QueryAPIConfiguration $ B.pack region) $ StartInstances [T.pack instanceid]+ B.putStr $ Y.encode imageSet+ return ()++stopInst :: String -> String -> Bool -> IO ()+stopInst region instanceid useMetadata = do+ cfg <- configuration useMetadata+ imageSet <- Aws.simpleAws cfg (QueryAPIConfiguration $ B.pack region) $ StopInstances [T.pack instanceid]+ B.putStr $ Y.encode imageSet+ return ()++main = join $ customExecParser prefs opts+ where+ prefs = ParserPrefs { prefMultiSuffix = ""+ , prefDisambiguate = True+ , prefShowHelpOnError = True+ , prefBacktrack = True+ , prefColumns = 80+ }++ opts = parser `info` header "AWS Ec2 client"++ parser = subparser (command "runInst" (argsRunInst runInst `info` progDesc "run instance")+ <> command "lsInst" (argsListInst listInst `info` progDesc "list all instance")+ <> command "lsImg" (argsListImg listImg `info` progDesc "list all image")+ <> command "lsStatus" (argsListStatus listStatus `info` progDesc "list status")+ <> command "term" (argsInst termInst `info` progDesc "terminate instance")+ <> command "start" (argsInst startInst `info` progDesc "start instance")+ <> command "stop" (argsInst stopInst `info` progDesc "stop instance")+ )++ argsRunInst comm = comm <$> argument str (metavar "<region>")+ <*> argument str (metavar "<imageid>")+ <*> argument str (metavar "<insttype>")+ <*> optional (strOption (short 'n' <>+ long "subnetid" <>+ help "Use subnetId"))+ <*> switch (short 'p' <>+ long "public" <>+ help "Use public-ip with subnetId")+ <*> switch (short 'm' <>+ long "metadata" <>+ help "Use instance metadata to get authentication info")+ argsListInst comm = comm <$> argument str (metavar "<region>")+ <*> switch (short 'm' <>+ long "metadata" <>+ help "Use instance metadata to get authentication info")+ argsListImg comm = comm <$> argument str (metavar "<region>")+ <*> switch (short 'm' <>+ long "metadata" <>+ help "Use instance metadata to get authentication info")+ argsListStatus comm = comm <$> argument str (metavar "<region>")+ <*> argument str (metavar "<instanceId>")+ <*> switch (short 'm' <>+ long "metadata" <>+ help "Use instance metadata to get authentication info")+ argsInst comm = comm <$> argument str (metavar "<region>")+ <*> argument str (metavar "<instanceId>")+ <*> switch (short 'm' <>+ long "metadata" <>+ help "Use instance metadata to get authentication info")
+ include/config.h view
@@ -0,0 +1,70 @@+#if __GLASGOW_HASKELL__ >= 780+#define USE_TH 1+#else+#undef USE_TH+#endif++#ifdef USE_TH+#define QUERYVALUETRANSACTION(Name,Response) queryValueTransaction ''Name Response+#define EC2VALUETRANSACTIONDEF(Name,NameStr,Tag,FilterKey) ec2ValueTransactionDef ''Name 'Name Tag FilterKey +#define EC2VALUETRANSACTION(Name,Response) ec2ValueTransaction ''Name Response+#define ELBVALUETRANSACTIONDEF(Name,NameStr,Tag,FilterKey) elbValueTransactionDef ''Name 'Name Tag FilterKey +#define ELBVALUETRANSACTION(Name,Response) elbValueTransaction ''Name Response++#else+#define QUERYVALUETRANSACTION(Name,Response) \+instance ResponseConsumer Name Value where { \+ type ResponseMetadata Value = QueryMetadata; \+ responseConsumer _v \+ = (queryResponseConsumer \+ $ (valueConsumer Response id)) }; \+instance Transaction Name Value++#define EC2VALUETRANSACTIONDEF(Name,NameStr,Tag,FilterKey) \+instance SignQuery Name where { \+ type ServiceConfiguration Name = QueryAPIConfiguration; \+ signQuery (Name arg_arQu) \+ = (ec2SignQuery \+ $ ([("Action", qArg NameStr), defVersion] \+ +++ (enumerate FilterKey arg_arQu qArg))) }; \+instance ResponseConsumer Name Value where { \+ type ResponseMetadata Value = QueryMetadata ; \+ responseConsumer _v \+ = (queryResponseConsumer \+ $ (valueConsumerOpt \+ (XMLValueOptions "item") Tag id)) } ;\+instance Transaction Name Value++#define EC2VALUETRANSACTION(Name,Response) \+instance ResponseConsumer Name Value where { \+ type ResponseMetadata Value = QueryMetadata ; \+ responseConsumer _v \+ = (queryResponseConsumer \+ $ (valueConsumer (Response) id)) } ; \+instance Transaction Name Value++#define ELBVALUETRANSACTIONDEF(Name,NameStr,Tag,FilterKey) \+instance SignQuery Name where { \+ type ServiceConfiguration Name = QueryAPIConfiguration ; \+ signQuery (Name arg_aHEZ) \+ = (elbSignQuery \+ $ ([("Action", qArg NameStr), defVersion] \+ +++ (enumerate FilterKey arg_aHEZ qArg))) }; \+instance ResponseConsumer Name Value where { \+ type ResponseMetadata Value = QueryMetadata ; \+ responseConsumer _ \+ = (queryResponseConsumer \+ $ (valueConsumerOpt \+ (XMLValueOptions "member") Tag id)) }; \+instance Transaction Name Value++#define ELBVALUETRANSACTION(Name,Response) \+instance ResponseConsumer Name Value where { \+ type ResponseMetadata Value = QueryMetadata ; \+ responseConsumer _v \+ = (queryResponseConsumer \+ $ (valueConsumerOpt \+ (XMLValueOptions "member") Response id)) }; \+instance Transaction Name Value++#endif
src/Aws/CloudWatch/Commands/PutMetricData.hs view
@@ -67,4 +67,4 @@ , ("Namespace", qArg namespace) ] +++ enumerateMetrics xs -queryValueTransaction ''PutMetricData "PutMetricDataResponse"+QUERYVALUETRANSACTION(PutMetricData,"PutMetricDataResponse")
src/Aws/Ec2.hs view
@@ -20,6 +20,9 @@ , module Aws.Ec2.Commands.DescribeInstances , module Aws.Ec2.Commands.DescribeInstanceStatus , module Aws.Ec2.Commands.RunInstances+, module Aws.Ec2.Commands.StartInstances+, module Aws.Ec2.Commands.StopInstances+, module Aws.Ec2.Commands.TerminateInstances , module Aws.Ec2.Commands.GetConsoleOutput , module Aws.Ec2.Commands.DescribeVpcs@@ -60,6 +63,9 @@ import Aws.Ec2.Commands.DescribeInstances import Aws.Ec2.Commands.DescribeInstanceStatus import Aws.Ec2.Commands.RunInstances+import Aws.Ec2.Commands.StartInstances+import Aws.Ec2.Commands.StopInstances+import Aws.Ec2.Commands.TerminateInstances import Aws.Ec2.Commands.GetConsoleOutput import Aws.Ec2.Commands.DescribeVpcs
src/Aws/Ec2/Commands/AttachInternetGateway.hs view
@@ -25,4 +25,4 @@ , defVersion ] -ec2ValueTransaction ''AttachInternetGateway "return"+EC2VALUETRANSACTION(AttachInternetGateway,"return")
src/Aws/Ec2/Commands/AttachVolume.hs view
@@ -27,4 +27,4 @@ , ("Device", qArg avol_device) ] -ec2ValueTransaction ''AttachVolume "AttachVolumeResponse"+EC2VALUETRANSACTION(AttachVolume,"AttachVolumeResponse")
src/Aws/Ec2/Commands/AuthorizeSecurityGroupIngress.hs view
@@ -50,4 +50,4 @@ , defVersion ] +++ enumeratePermissions asi_permissions -ec2ValueTransaction ''AuthorizeSecurityGroupIngress "AuthorizeSecurityGroupIngressResponse"+EC2VALUETRANSACTION(AuthorizeSecurityGroupIngress,"AuthorizeSecurityGroupIngressResponse")
src/Aws/Ec2/Commands/CreateInternetGateway.hs view
@@ -20,4 +20,4 @@ , defVersion ] -ec2ValueTransaction ''CreateInternetGateway "internetGateway"+EC2VALUETRANSACTION(CreateInternetGateway,"internetGateway")
src/Aws/Ec2/Commands/CreateRoute.hs view
@@ -35,4 +35,4 @@ NetworkInterfaceId t -> [("NetworkInterfaceId", qArg t)] VpcPeeringConnectionId t -> [("VpcPeeringConnectionId", qArg t)] -ec2ValueTransaction ''CreateRoute "return"+EC2VALUETRANSACTION(CreateRoute,"return")
src/Aws/Ec2/Commands/CreateSecurityGroup.hs view
@@ -25,4 +25,4 @@ , defVersion ] +++ optionalA "VpcId" csec_vpcId -ec2ValueTransaction ''CreateSecurityGroup "CreateSecurityGroupResponse"+EC2VALUETRANSACTION(CreateSecurityGroup,"CreateSecurityGroupResponse")
src/Aws/Ec2/Commands/CreateSubnet.hs view
@@ -26,4 +26,4 @@ , ("CidrBlock", qArg csub_cidrBlock) ] +++ (optionalA "AvailabilityZone" csub_availabilityZone) -ec2ValueTransaction ''CreateSubnet "subnet"+EC2VALUETRANSACTION(CreateSubnet,"subnet")
src/Aws/Ec2/Commands/CreateTags.hs view
@@ -33,4 +33,4 @@ ] +++ enumerate "ResourceId" ct_resources qArg +++ enumerateTags ct_tags -ec2ValueTransaction ''CreateTags "return"+EC2VALUETRANSACTION(CreateTags,"return")
src/Aws/Ec2/Commands/CreateVolume.hs view
@@ -24,4 +24,4 @@ , ("AvailabilityZone", qArg cvol_AvailabilityZone) ] ++ queryEbsBlockDevice cvol_ebs -ec2ValueTransaction ''CreateVolume "CreateVolumeResponse"+EC2VALUETRANSACTION(CreateVolume,"CreateVolumeResponse")
src/Aws/Ec2/Commands/CreateVpc.hs view
@@ -24,4 +24,4 @@ , defVersion ] -ec2ValueTransaction ''CreateVpc "vpc"+EC2VALUETRANSACTION(CreateVpc,"vpc")
src/Aws/Ec2/Commands/DescribeAvailabilityZones.hs view
@@ -10,4 +10,4 @@ data DescribeAvailabilityZones = DescribeAvailabilityZones [Text] deriving (Show) -ec2ValueTransactionDef ''DescribeAvailabilityZones 'DescribeAvailabilityZones "availabilityZoneInfo" "ZoneName"+EC2VALUETRANSACTIONDEF(DescribeAvailabilityZones,"DescribeAvailabilityZones","availabilityZoneInfo","ZoneName")
src/Aws/Ec2/Commands/DescribeImages.hs view
@@ -20,4 +20,4 @@ [] -> [("Owner.1", qArg "self")] _ -> enumerate "ImageId" di_imageIds qArg -ec2ValueTransaction ''DescribeImages "imagesSet"+EC2VALUETRANSACTION(DescribeImages,"imagesSet")
src/Aws/Ec2/Commands/DescribeInstanceStatus.hs view
@@ -13,4 +13,4 @@ data DescribeInstanceStatus = DescribeInstanceStatus { dis_instanceIds :: [Text] } deriving (Show) -ec2ValueTransactionDef ''DescribeInstanceStatus 'DescribeInstanceStatus "instanceStatusSet" "InstanceId"+EC2VALUETRANSACTIONDEF(DescribeInstanceStatus,"DescribeInstanceStatus","instanceStatusSet","InstanceId")
src/Aws/Ec2/Commands/DescribeInstances.hs view
@@ -20,5 +20,5 @@ , defVersion ] +++ enumerate "InstanceId" di_instanceIds qArg -ec2ValueTransaction ''DescribeInstances "reservationSet"+EC2VALUETRANSACTION(DescribeInstances,"reservationSet")
src/Aws/Ec2/Commands/DescribeKeyPairs.hs view
@@ -10,4 +10,4 @@ data DescribeKeyPairs = DescribeKeyPairs [Text] deriving (Show) -ec2ValueTransactionDef ''DescribeKeyPairs 'DescribeKeyPairs "keySet" "KeyName"+EC2VALUETRANSACTIONDEF(DescribeKeyPairs,"DescribeKeyPairs","keySet","KeyName")
src/Aws/Ec2/Commands/DescribeRegions.hs view
@@ -10,4 +10,4 @@ data DescribeRegions = DescribeRegions [Text] deriving (Show) -ec2ValueTransactionDef ''DescribeRegions 'DescribeRegions "regionInfo" "RegionName"+EC2VALUETRANSACTIONDEF(DescribeRegions,"DescribeRegions","regionInfo","RegionName")
src/Aws/Ec2/Commands/DescribeRouteTables.hs view
@@ -22,4 +22,4 @@ , ("Filter.1.Value.1", qArg drt_vpcId) ] -ec2ValueTransaction ''DescribeRouteTables "routeTableSet"+EC2VALUETRANSACTION(DescribeRouteTables,"routeTableSet")
src/Aws/Ec2/Commands/DescribeSecurityGroups.hs view
@@ -27,4 +27,4 @@ [] -> [] _ -> ("Filter.1.Name", qArg "group-name"):(enumerate "Filter.1.Value" sg_names qArg) -ec2ValueTransaction ''DescribeSecurityGroups "securityGroupInfo"+EC2VALUETRANSACTION(DescribeSecurityGroups,"securityGroupInfo")
src/Aws/Ec2/Commands/DescribeSubnets.hs view
@@ -10,4 +10,4 @@ data DescribeSubnets = DescribeSubnets [Text] deriving (Show) -ec2ValueTransactionDef ''DescribeSubnets 'DescribeSubnets "subnetSet" "SubnetId"+EC2VALUETRANSACTIONDEF(DescribeSubnets,"DescribeSubnets","subnetSet","SubnetId")
src/Aws/Ec2/Commands/DescribeTags.hs view
@@ -10,4 +10,4 @@ data DescribeTags = DescribeTags [Text] deriving (Show) -ec2ValueTransactionDef ''DescribeTags 'DescribeTags "tagSet" "" -- search not implemented+EC2VALUETRANSACTIONDEF(DescribeTags,"DescribeTags","tagSet","") -- search not implemented
src/Aws/Ec2/Commands/DescribeVolumeStatus.hs view
@@ -10,4 +10,4 @@ data DescribeVolumeStatus = DescribeVolumeStatus [Text] deriving (Show) -ec2ValueTransactionDef ''DescribeVolumeStatus 'DescribeVolumeStatus "volumeStatusSet" "VolumeId"+EC2VALUETRANSACTIONDEF(DescribeVolumeStatus,"DescribeVolumeStatus","volumeStatusSet","VolumeId")
src/Aws/Ec2/Commands/DescribeVolumes.hs view
@@ -10,4 +10,4 @@ data DescribeVolumes = DescribeVolumes [Text] deriving (Show) -ec2ValueTransactionDef ''DescribeVolumes 'DescribeVolumes "volumeSet" "VolumeId"+EC2VALUETRANSACTIONDEF(DescribeVolumes,"DescribeVolumes","volumeSet","VolumeId")
src/Aws/Ec2/Commands/DescribeVpcs.hs view
@@ -10,4 +10,4 @@ data DescribeVpcs = DescribeVpcs { dvpc_vpcIds :: [Text] } deriving (Show) -ec2ValueTransactionDef ''DescribeVpcs 'DescribeVpcs "vpcSet" "VpcId"+EC2VALUETRANSACTIONDEF(DescribeVpcs,"DescribeVpcs","vpcSet","VpcId")
src/Aws/Ec2/Commands/GetConsoleOutput.hs view
@@ -29,4 +29,4 @@ , ("InstanceId", qArg gco_instanceId) ] -ec2ValueTransaction ''GetConsoleOutput "GetConsoleOutputResponse"+EC2VALUETRANSACTION(GetConsoleOutput,"GetConsoleOutputResponse")
src/Aws/Ec2/Commands/ImportKeyPair.hs view
@@ -25,4 +25,4 @@ , ("PublicKeyMaterial", qArg ikp_publicKeyMaterial) ] -ec2ValueTransaction ''ImportKeyPair "ImportKeyPairResponse"+EC2VALUETRANSACTION(ImportKeyPair,"ImportKeyPairResponse")
src/Aws/Ec2/Commands/ModifyVpcAttribute.hs view
@@ -28,4 +28,4 @@ EnableDnsSupport es -> [("EnableDnsSupport.Value", qShow es)] EnableDnsHostnames eh -> [("EnableDnsHostnames.Value", qShow eh)] -ec2ValueTransaction ''ModifyVpcAttribute "return"+EC2VALUETRANSACTION(ModifyVpcAttribute,"return")
src/Aws/Ec2/Commands/RunInstances.hs view
@@ -38,6 +38,7 @@ , run_clientToken :: Maybe Text , run_iamInstanceProfileARN :: Maybe Text , run_availabilityZone :: Maybe Text+ , run_associatePublicIpAddress :: Bool -- , run_placement :: Maybe Placement -- also missing: NetworkInterface } deriving (Show)@@ -84,8 +85,8 @@ Nothing -> enumerate "SecurityGroupId" run_securityGroupIds qArg Just subnetId -> [ ("NetworkInterface.0.DeviceIndex", qShow 0) , ("NetworkInterface.0.SubnetId", qArg subnetId)- , ("NetworkInterface.0.AssociatePublicIpAddress", qShow True)+ , ("NetworkInterface.0.AssociatePublicIpAddress", qShow run_associatePublicIpAddress) ] +++ enumerate "NetworkInterface.0.SecurityGroupId" run_securityGroupIds qArg -ec2ValueTransaction ''RunInstances "RunInstancesResponse"+EC2VALUETRANSACTION(RunInstances,"RunInstancesResponse")
+ src/Aws/Ec2/Commands/StartInstances.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE TypeFamilies+ , MultiParamTypeClasses+ , FlexibleInstances+ , OverloadedStrings+ , RecordWildCards+ , TemplateHaskell+ , LambdaCase+ #-}++module Aws.Ec2.Commands.StartInstances where++import Data.Text ()+import Data.ByteString.Char8 (pack)+import qualified Network.HTTP.Types as HTTP+import Data.Monoid+import Aws.Ec2.TH++-- http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-StartInstances.html+data StartInstances = StartInstances+ { start_instanceIds :: [Text]+ } deriving (Show)++instance SignQuery StartInstances where+ type ServiceConfiguration StartInstances = EC2Configuration+ signQuery StartInstances{..} = ec2SignQuery $+ main+ +++ enumerateInstances (zip [1..] start_instanceIds)+ where+ main :: HTTP.Query+ main = [ ("Action", qArg "StartInstances")+ , defVersion+ ]+ enumerateInstances :: [(Int,Text)] -> HTTP.Query+ enumerateInstances [] = []+ enumerateInstances ((i,x):xs) = [("InstanceId." <> pack (show i), qArg x)] +++ enumerateInstances xs++EC2VALUETRANSACTION(StartInstances,"StartInstancesResponse")
+ src/Aws/Ec2/Commands/StopInstances.hs view
@@ -0,0 +1,38 @@+{-# LANGUAGE TypeFamilies+ , MultiParamTypeClasses+ , FlexibleInstances+ , OverloadedStrings+ , RecordWildCards+ , TemplateHaskell+ , LambdaCase+ #-}++module Aws.Ec2.Commands.StopInstances where++import Data.Text ()+import Data.ByteString.Char8 (pack)+import qualified Network.HTTP.Types as HTTP+import Data.Monoid+import Aws.Ec2.TH++-- http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-StopInstances.html+data StopInstances = StopInstances+ { stop_instanceIds :: [Text]+ } deriving (Show)++instance SignQuery StopInstances where+ type ServiceConfiguration StopInstances = EC2Configuration+ signQuery StopInstances{..} = ec2SignQuery $+ main+ +++ enumerateInstances (zip [1..] stop_instanceIds)+ where+ main :: HTTP.Query+ main = [ ("Action", qArg "StopInstances")+ , defVersion+ ]+ enumerateInstances :: [(Int,Text)] -> HTTP.Query+ enumerateInstances [] = []+ enumerateInstances ((i,x):xs) = [("InstanceId." <> pack (show i), qArg x)] +++ enumerateInstances xs+++EC2VALUETRANSACTION(StopInstances,"StopInstancesResponse")
+ src/Aws/Ec2/Commands/TerminateInstances.hs view
@@ -0,0 +1,38 @@+{-# LANGUAGE TypeFamilies+ , MultiParamTypeClasses+ , FlexibleInstances+ , OverloadedStrings+ , RecordWildCards+ , TemplateHaskell+ , LambdaCase+ #-}++module Aws.Ec2.Commands.TerminateInstances where++import Data.Text ()+import Data.ByteString.Char8 (pack)+import qualified Network.HTTP.Types as HTTP+import Data.Monoid+import Aws.Ec2.TH++-- http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-TerminateInstances.html+data TerminateInstances = TerminateInstances+ { term_instanceIds :: [Text]+ } deriving (Show)++instance SignQuery TerminateInstances where+ type ServiceConfiguration TerminateInstances = EC2Configuration+ signQuery TerminateInstances{..} = ec2SignQuery $+ main+ +++ enumerateInstances (zip [1..] term_instanceIds)+ where+ main :: HTTP.Query+ main = [ ("Action", qArg "TerminateInstances")+ , defVersion+ ]+ enumerateInstances :: [(Int,Text)] -> HTTP.Query+ enumerateInstances [] = []+ enumerateInstances ((i,x):xs) = [("InstanceId." <> pack (show i), qArg x)] +++ enumerateInstances xs+++EC2VALUETRANSACTION(TerminateInstances,"TerminateInstancesResponse")
src/Aws/Ec2/TH.hs view
@@ -13,8 +13,10 @@ , Text , UTCTime , FromJSON+#ifdef USE_TH , ec2ValueTransactionDef , ec2ValueTransaction+#endif ) where import Data.Text (Text)@@ -27,6 +29,8 @@ import Aws.Query import Aws.Query.TH +#ifdef USE_TH ec2ValueTransactionDef ty cons tag filterKey = queryValueTransactionDef ty cons tag 'ec2SignQuery 'defVersion "item" filterKey ec2ValueTransaction = queryValueTransaction+#endif
src/Aws/Elb/Commands/ConfigureHealthCheck.hs view
@@ -46,4 +46,4 @@ , ("HealthCheck.Timeout", qShow hc_timeout) ] -elbValueTransaction ''ConfigureHealthCheck "ConfigureHealthCheckResult"+ELBVALUETRANSACTION(ConfigureHealthCheck,"ConfigureHealthCheckResult")
+ src/Aws/Elb/Commands/CreateAppCookieStickinessPolicy.hs view
@@ -0,0 +1,29 @@+{-# LANGUAGE TypeFamilies+ , MultiParamTypeClasses+ , FlexibleInstances+ , OverloadedStrings+ , TemplateHaskell+ , RecordWildCards+ #-}++module Aws.Elb.Commands.CreateAppCookieStickinessPolicy where++import Aws.Elb.TH++data CreateAppCookieStickinessPolicy = CreateAppCookieStickinessPolicy+ { cacsp_loadBalancerName :: Text+ , cacsp_cookieName :: Text+ , cacsp_policyName :: Text+ } deriving (Show)++instance SignQuery CreateAppCookieStickinessPolicy where+ type ServiceConfiguration CreateAppCookieStickinessPolicy = QueryAPIConfiguration+ signQuery CreateAppCookieStickinessPolicy{..} = elbSignQuery $+ [ ("Action", qArg "CreateAppCookieStickinessPolicy")+ , defVersion+ , ("LoadBalancerName", qArg cacsp_loadBalancerName)+ , ("PolicyName", qArg cacsp_policyName)+ , ("CookieName", qArg cacsp_cookieName)+ ]++ELBVALUETRANSACTION(CreateAppCookieStickinessPolicy,"CreateAppCookieStickinessPolicyResult")
src/Aws/Elb/Commands/CreateLBCookieStickinessPolicy.hs view
@@ -25,4 +25,4 @@ , ("PolicyName", qArg clbcsp_policyName) ] +++ optional "CookieExpirationPeriod" clbcsp_cookieExpirationPeriod qShow -elbValueTransaction ''CreateLBCookieStickinessPolicy "CreateLBCookieStickinessPolicyResult"+ELBVALUETRANSACTION(CreateLBCookieStickinessPolicy,"CreateLBCookieStickinessPolicyResult")
src/Aws/Elb/Commands/CreateLoadBalancer.hs view
@@ -56,4 +56,4 @@ _ -> [] -elbValueTransaction ''CreateLoadBalancer "CreateLoadBalancerResult"+ELBVALUETRANSACTION(CreateLoadBalancer,"CreateLoadBalancerResult")
src/Aws/Elb/Commands/DeregisterInstancesFromLoadBalancer.hs view
@@ -25,4 +25,4 @@ , ("LoadBalancerName", qArg dilb_name) ] +++ enumerateInstanceIds dilb_instanceIds -elbValueTransaction ''DeregisterInstancesFromLoadBalancer "DeregisterInstancesFromLoadBalancerResult"+ELBVALUETRANSACTION(DeregisterInstancesFromLoadBalancer,"DeregisterInstancesFromLoadBalancerResult")
src/Aws/Elb/Commands/DescribeInstanceHealth.hs view
@@ -19,4 +19,4 @@ , ("LoadBalancerName", qArg lb) ] -elbValueTransaction ''DescribeInstanceHealth "DescribeInstanceHealthResult"+ELBVALUETRANSACTION(DescribeInstanceHealth,"DescribeInstanceHealthResult")
src/Aws/Elb/Commands/DescribeLoadBalancerPolicies.hs view
@@ -19,4 +19,4 @@ , ("LoadBalancerName", qArg lb) ] -elbValueTransaction ''DescribeLoadBalancerPolicies "DescribeLoadBalancerPoliciesResult"+ELBVALUETRANSACTION(DescribeLoadBalancerPolicies,"DescribeLoadBalancerPoliciesResult")
src/Aws/Elb/Commands/DescribeLoadBalancers.hs view
@@ -12,4 +12,4 @@ data DescribeLoadBalancers = DescribeLoadBalancers [Text] -elbValueTransactionDef ''DescribeLoadBalancers 'DescribeLoadBalancers "LoadBalancerDescriptions" "LoadBalancerNames.member"+ELBVALUETRANSACTIONDEF(DescribeLoadBalancers,"DescribeLoadBalancers","LoadBalancerDescriptions","LoadBalancerNames.member")
src/Aws/Elb/Commands/ModifyLoadBalancerAttributes.hs view
@@ -53,4 +53,4 @@ , ("LoadBalancerName", qArg mlba_name) ] +++ concatMap attributeQuery mlba_attributes -elbValueTransaction ''ModifyLoadBalancerAttributes "ModifyLoadBalancerAttributesResult"+ELBVALUETRANSACTION(ModifyLoadBalancerAttributes,"ModifyLoadBalancerAttributesResult")
src/Aws/Elb/Commands/RegisterInstancesWithLoadBalancer.hs view
@@ -25,4 +25,4 @@ , ("LoadBalancerName", qArg rilb_name) ] +++ enumerateInstanceIds rilb_instanceIds -elbValueTransaction ''RegisterInstancesWithLoadBalancer "RegisterInstancesWithLoadBalancerResult"+ELBVALUETRANSACTION(RegisterInstancesWithLoadBalancer,"RegisterInstancesWithLoadBalancerResult")
src/Aws/Elb/Commands/SetLoadBalancerPoliciesOfListener.hs view
@@ -25,4 +25,4 @@ , ("LoadBalancerPort", qShow spl_loadBalancerPort) ] +++ enumerate "PolicyNames.member" spl_policyNames qArg -elbValueTransaction ''SetLoadBalancerPoliciesOfListener "SetLoadBalancerPoliciesOfListenerResult"+ELBVALUETRANSACTION(SetLoadBalancerPoliciesOfListener,"SetLoadBalancerPoliciesOfListenerResult")
src/Aws/Elb/TH.hs view
@@ -11,8 +11,10 @@ , module Aws.Query , Text , FromJSON+#ifdef USE_TH , elbValueTransaction , elbValueTransactionDef+#endif ) where import Language.Haskell.TH@@ -27,6 +29,7 @@ import Aws.Query.TH import Aws.Elb.Core +#ifdef USE_TH elbValueTransaction :: Name -> String -> DecsQ elbValueTransaction ty tag = [d| instance ResponseConsumer $(conT ty) Value where@@ -37,3 +40,4 @@ |] elbValueTransactionDef ty cons tag filterKey = queryValueTransactionDef ty cons tag 'elbSignQuery 'defVersion "member" filterKey+#endif
src/Aws/Query/TH.hs view
@@ -14,8 +14,10 @@ , Text , UTCTime , FromJSON+#ifdef USE_TH , queryValueTransactionDef , queryValueTransaction+#endif ) where import Language.Haskell.TH@@ -29,6 +31,7 @@ import Aws.Core import Aws.Query +#ifdef USE_TH queryValueTransactionDef :: Name -> Name -> String -> Name -> Name -> String -> String -> DecsQ queryValueTransactionDef ty cons tag signF version item filterKey = do arg <- newName "arg"@@ -54,3 +57,4 @@ instance Transaction $(conT ty) Value |]+#endif