machines-amazonka 0.6.2 → 0.7.0
raw patch · 10 files changed
+174/−66 lines, 10 filesdep +amazonka-autoscalingPVP ok
version bump matches the API change (PVP)
Dependencies added: amazonka-autoscaling
API changes (from Hackage documentation)
+ Network.AWS.Machines.AutoScaleGroup: autoScalingGroups :: [RequestMod DescribeAutoScalingGroups] -> AWSSourceT m AutoScalingGroup
+ Network.AWS.Machines.AutoScaleGroup: data AutoScalingGroup :: *
+ Network.AWS.Machines.LaunchConfigurations: launchConfigurations :: [RequestMod DescribeLaunchConfigurations] -> AWSSourceT m LaunchConfiguration
+ Network.AWS.Machines.SecurityGroups: securityGroups :: [RequestMod DescribeSecurityGroups] -> AWSSourceT m SecurityGroup
+ Network.AWS.Machines.Types: data IO a :: * -> *
+ Network.AWS.Machines.Types: type AWSProcessT m a b = AWSMachineT m (Is a) b
+ Network.AWS.Machines.Types: type AWSSourceT m b = forall k. AWSMachineT m k b
+ Network.AWS.Machines.Types: type GetResponse f a c = (AWSRequest a, Foldable f) => Getting (f c) (Rs a) (f c)
+ Network.AWS.Machines.Types: type M m = (MonadBaseControl IO m, MonadAWS (AWST' Env (ResourceT m)))
+ Network.AWS.Machines.Types: type AWSMachineT m k b = M m => MachineT (AWST' Env (ResourceT m)) k b
+ Network.AWS.Machines.Types: type RequestMod a = a -> a
- Network.AWS.Machines.Instances: stopT :: AWSProcessT m Instance InstanceStateChange
+ Network.AWS.Machines.Instances: stopT :: (MonadThrow m, M m, MonadIO m) => AWSProcessT m Instance InstanceStateChange
Files
- Source/Library/Network/AWS/Machines.hs +0/−25
- Source/Library/Network/AWS/Machines/AWS.hs +2/−28
- Source/Library/Network/AWS/Machines/AutoScaleGroup.hs +29/−0
- Source/Library/Network/AWS/Machines/Images.hs +2/−0
- Source/Library/Network/AWS/Machines/Instances.hs +6/−4
- Source/Library/Network/AWS/Machines/LaunchConfigurations.hs +45/−0
- Source/Library/Network/AWS/Machines/SecurityGroups.hs +17/−0
- Source/Library/Network/AWS/Machines/SpotPrices.hs +2/−0
- Source/Library/Network/AWS/Machines/Types.hs +58/−0
- machines-amazonka.cabal +13/−9
− Source/Library/Network/AWS/Machines.hs
@@ -1,25 +0,0 @@-{-|-Module: Network.AWS.Machines-Description: Machines transducers for Amazonka functions.-Copyright: © 2017 All rights reserved.-License: GPL-3-Maintainer: Evan Cofsky <evan@theunixman.com>-Stability: experimental-Portability: POSIX--}--module Network.AWS.Machines (- module Network.AWS.Machines.AWS,- module Network.AWS.Machines.Filters,- module Network.AWS.Machines.Images,- module Network.AWS.Machines.Instances,- module Network.AWS.Machines.Subnets,- module Network.AWS.Machines.SpotPrices- ) where--import Network.AWS.Machines.AWS-import Network.AWS.Machines.Filters-import Network.AWS.Machines.Images-import Network.AWS.Machines.Instances-import Network.AWS.Machines.SpotPrices-import Network.AWS.Machines.Subnets
Source/Library/Network/AWS/Machines/AWS.hs view
@@ -9,8 +9,6 @@ -} module Network.AWS.Machines.AWS (- module Machine,- module Lawless, AWSProcessT, AWSSourceT, RequestMod,@@ -46,36 +44,12 @@ (<~), (<>) )-import Network.AWS hiding (send, within)-import Control.Monad.Trans.AWS-import Control.Monad.IO.Class-import Control.Monad.Trans.Control-import Control.Monad.Catch+import IO import Text-import Control.Monad.Trans.Resource import Machine+import Network.AWS.Machines.Types default (Text)---- | The base monad constraints for an 'AWSMachineT'.-type M m = (MonadBaseControl IO m, MonadAWS (AWST' Env (ResourceT m)))---- | Any 'MachineT' operating in the AWST' stack.-type AWSMachineT m k b = M m ⇒ MachineT (AWST' Env (ResourceT m)) k b---- | A process transducing a stream of AWS values.-type AWSProcessT m a b = AWSMachineT m (Is a) b---- | A stream of AWS values.-type AWSSourceT m b = ∀ k. AWSMachineT m k b---- | A 'Getter' for extracting values from an 'Rs' 'AWSRequest'.-type GetResponse f a c =- (AWSRequest a, Foldable f) ⇒ Getting (f c) (Rs a) (f c)---- | Modifies an 'AWSRequest' after the smart constructor has created--- it.-type RequestMod a = a → a -- | Run an AWSProcessT. withAWS ∷ (MonadCatch m, MonadIO m, M m) ⇒
+ Source/Library/Network/AWS/Machines/AutoScaleGroup.hs view
@@ -0,0 +1,29 @@+{-|+Module: Network.AWS.Machines.LaunchConfigurations+Description: Pull launch configuration information from AWS.+Copyright: © 2017 All rights reserved.+License: GPL-3+Maintainer: Evan Cofsky <evan@theunixman.com>+Stability: experimental+Portability: POSIX+-}++module Network.AWS.Machines.AutoScaleGroup (+ autoScalingGroups,+ AutoScalingGroup) where++import Network.AWS.Machines.AWS+import Network.AWS.AutoScaling++autoScalingGroups ∷+ [RequestMod DescribeAutoScalingGroups] → AWSSourceT m AutoScalingGroup+autoScalingGroups ms = pagedSource dasgrsAutoScalingGroups ms describeAutoScalingGroups++-- -- | Create or update tags on a batch of 'AutoScaleGroup's,+-- -- yielding the launch configurations.+-- createOrUpdateTags ∷+-- [Tag] → AWSProcessT m AutoScalingGroup LaunchConfiguration+-- createOrUpdateTags tags = repeatedly $ do+-- lc ← await+-- let tgs = over traversed (\t → t & tagResourceId .~ lc ^. )+-- await ≫= coutTags (over traversed (flip set ))
Source/Library/Network/AWS/Machines/Images.hs view
@@ -12,6 +12,7 @@ module Network.AWS.Machines.Images where +import Lawless hiding (mapping) import Network.AWS.EC2 import Network.AWS.Machines.Filters import Network.AWS.Machines.AWS@@ -20,6 +21,7 @@ import Textual hiding (toText) import Data.Time.Format import Text+import Machine images ∷ [RequestMod DescribeImages] → AWSSourceT m Image images ms = awsSource desrsImages ms describeImages
Source/Library/Network/AWS/Machines/Instances.hs view
@@ -10,18 +10,20 @@ module Network.AWS.Machines.Instances where -import Network.AWS+import Lawless hiding (mapping)+import Machine import Network.AWS.Machines.AWS+import Network.AWS.Machines.Types hiding (Instance) import Network.AWS.EC2 reservations ∷ [RequestMod DescribeInstances] → AWSSourceT m Reservation reservations ms = pagedSource dirsReservations ms describeInstances instances ∷ AWSProcessT m Reservation Instance-instances = mapping (view rInstances) ~> asParts+instances = mapping (view rInstances) ⇝ asParts -stopT ∷ AWSProcessT m Instance InstanceStateChange-stopT = buffered 50 ~> autoM stop' ~> asParts+stopT ∷ (MonadThrow m, M m, MonadIO m) ⇒ AWSProcessT m Instance InstanceStateChange+stopT = buffered 50 ~> autoM stop' ⇝ asParts where srq iids = stopInstances & siInstanceIds
+ Source/Library/Network/AWS/Machines/LaunchConfigurations.hs view
@@ -0,0 +1,45 @@+{-|+Module: Network.AWS.Machines.LaunchConfigurations+Description: Pull launch configuration information from AWS.+Copyright: © 2017 All rights reserved.+License: GPL-3+Maintainer: Evan Cofsky <evan@theunixman.com>+Stability: experimental+Portability: POSIX+-}++module Network.AWS.Machines.LaunchConfigurations (+ module Network.AWS.AutoScaling.CreateLaunchConfiguration,+ module Network.AWS.AutoScaling.DescribeLaunchConfigurations,+ launchConfigurations+ ) where++import Network.AWS.Machines.AWS+import Network.AWS.Machines.Types hiding (await)+import Network.AWS.AutoScaling.CreateLaunchConfiguration+import Network.AWS.AutoScaling.DescribeLaunchConfigurations++launchConfigurations ∷+ [RequestMod DescribeLaunchConfigurations] → AWSSourceT m LaunchConfiguration+launchConfigurations ms =+ pagedSource dlcrsLaunchConfigurations ms describeLaunchConfigurations++-- -- | Create a new launch configuration for each+-- -- 'CreateLaunchConfiguration' that comes through. Return the actual+-- -- created 'LaunchConfiguration' by searching for the name.+-- createLaunchConfiguration ∷+-- [CreateLaunchConfiguration] →+-- AWSProcessT m CreateLaunchConfiguration LaunchConfiguration+-- createLaunchConfiguration =+-- let+-- c = repeatedly $ do+-- rq ← await+-- send rq+-- yield $ rq ^. lcLaunchConfigurationName+-- bc = buffered 100+-- lcs = repeatedly $+-- await+-- ≫= launchConfigurations ∘ over traversed (flip set dlcLaunchConfigurationNames)+-- ≫= yield+-- in+-- c ⇝ bc ⇝ asParts ⇝ lcs
+ Source/Library/Network/AWS/Machines/SecurityGroups.hs view
@@ -0,0 +1,17 @@+{-|+Module: Network.AWS.Machines.+Description: Machines producing instances+Copyright: © 2017 All rights reserved.+License: GPL-3+Maintainer: Evan Cofsky <evan@theunixman.com>+Stability: experimental+Portability: POSIX+-}++module Network.AWS.Machines.SecurityGroups where++import Network.AWS.Machines.AWS+import Network.AWS.EC2++securityGroups ∷ [RequestMod DescribeSecurityGroups] → AWSSourceT m SecurityGroup+securityGroups ms = awsSource dsgrsSecurityGroups ms describeSecurityGroups
Source/Library/Network/AWS/Machines/SpotPrices.hs view
@@ -15,12 +15,14 @@ import Lawless hiding (filtered, mapping) import Network.AWS.EC2 import Network.AWS.Machines.AWS+import Network.AWS.Machines.Types import Network.AWS.Data.Text (toText) import Time import Data.Fixed import Textual (Textual(..), Printable(..), fromText, hcat, fsep) import Text+import Machine -- | An 'AWSSourceT' for 'SpotPrice's. type SpotPriceSourceT m = AWSSourceT m SpotPrice
+ Source/Library/Network/AWS/Machines/Types.hs view
@@ -0,0 +1,58 @@+{-|+Module: Network.AWS.Machines.AWS.Types+Description: Type reexports from Network.AWS.+Copyright: © 2017 All rights reserved.+License: GPL-3+Maintainer: Evan Cofsky <evan@theunixman.com>+Stability: experimental+Portability: POSIX+-}++module Network.AWS.Machines.Types (+ module Network.AWS,+ module Control.Monad.Trans.AWS,+ module Control.Monad.IO.Class,+ module Control.Monad.Trans.Control,+ module Control.Monad.Catch,+ module Control.Monad.Trans.Resource,+ module Network.AWS.Types,+ module Network.AWS.AutoScaling.Types,+ M,+ AWSMachineT,+ AWSProcessT,+ AWSSourceT,+ GetResponse,+ RequestMod,+ IO+ ) where++import Lawless+import Network.AWS (MonadAWS, liftAWS, )+import Control.Monad.Trans.AWS+import Control.Monad.IO.Class+import Control.Monad.Trans.Control+import Control.Monad.Catch+import Control.Monad.Trans.Resource+import Network.AWS.Types+import Network.AWS.AutoScaling.Types+import Machine++-- | The base monad constraints for an 'AWSMachineT'.+type M m = (MonadBaseControl IO m, MonadAWS (AWST' Env (ResourceT m)))++-- | Any 'MachineT' operating in the AWST' stack.+type AWSMachineT m k b = M m ⇒ MachineT (AWST' Env (ResourceT m)) k b++-- | A process transducing a stream of AWS values.+type AWSProcessT m a b = AWSMachineT m (Is a) b++-- | A stream of AWS values.+type AWSSourceT m b = ∀ k. AWSMachineT m k b++-- | A 'Getter' for extracting values from an 'Rs' 'AWSRequest'.+type GetResponse f a c =+ (AWSRequest a, Foldable f) ⇒ Getting (f c) (Rs a) (f c)++-- | Modifies an 'AWSRequest' after the smart constructor has created+-- it.+type RequestMod a = a → a
machines-amazonka.cabal view
@@ -1,5 +1,5 @@ name: machines-amazonka-version: 0.6.2+version: 0.7.0 synopsis: Machine transducers for Amazonka calls. description: This provides several modules for managing AWS resources using the Machines library. It supports@@ -25,20 +25,23 @@ source-repository this type: git location: git@gitlab.com:theunixman/machines-amazonka.git- tag: v0.6.2+ tag: v0.7.0 library ghc-options: -Wall -O2 exposed-modules:- Network.AWS.Machines- Network.AWS.Machines.AWS- Network.AWS.Machines.Filters- Network.AWS.Machines.Images- Network.AWS.Machines.Instances- Network.AWS.Machines.SpotPrices- Network.AWS.Machines.Subnets+ Network.AWS.Machines.AWS+ Network.AWS.Machines.AutoScaleGroup+ Network.AWS.Machines.Filters+ Network.AWS.Machines.Images+ Network.AWS.Machines.Instances+ Network.AWS.Machines.LaunchConfigurations+ Network.AWS.Machines.SecurityGroups+ Network.AWS.Machines.SpotPrices+ Network.AWS.Machines.Subnets+ Network.AWS.Machines.Types default-extensions: NoImplicitPrelude UnicodeSyntax LambdaCase@@ -64,6 +67,7 @@ build-depends: amazonka >= 1.4.5 && < 1.5, amazonka-core >= 1.4.5 && < 1.5,+ amazonka-autoscaling >= 1.4.5 && < 1.5, amazonka-ec2 >= 1.4.5 && < 1.5, amazonka-s3 >= 1.4.5 && < 1.5, amazonka-sts >= 1.4.5 && < 1.5,