module Network.AWS.AutoScaling.DescribeScalingProcessTypes
    (
    
      DescribeScalingProcessTypes
    
    , describeScalingProcessTypes
    
    , DescribeScalingProcessTypesResponse
    
    , describeScalingProcessTypesResponse
    
    , dsptrProcesses
    ) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.AutoScaling.Types
import qualified GHC.Exts
data DescribeScalingProcessTypes = DescribeScalingProcessTypes
    deriving (Eq, Ord, Show, Generic)
describeScalingProcessTypes :: DescribeScalingProcessTypes
describeScalingProcessTypes = DescribeScalingProcessTypes
newtype DescribeScalingProcessTypesResponse = DescribeScalingProcessTypesResponse
    { _dsptrProcesses :: List "member" ProcessType
    } deriving (Eq, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeScalingProcessTypesResponse where
    type Item DescribeScalingProcessTypesResponse = ProcessType
    fromList = DescribeScalingProcessTypesResponse . GHC.Exts.fromList
    toList   = GHC.Exts.toList . _dsptrProcesses
describeScalingProcessTypesResponse :: DescribeScalingProcessTypesResponse
describeScalingProcessTypesResponse = DescribeScalingProcessTypesResponse
    { _dsptrProcesses = mempty
    }
dsptrProcesses :: Lens' DescribeScalingProcessTypesResponse [ProcessType]
dsptrProcesses = lens _dsptrProcesses (\s a -> s { _dsptrProcesses = a }) . _List
instance ToPath DescribeScalingProcessTypes where
    toPath = const "/"
instance ToQuery DescribeScalingProcessTypes where
    toQuery = const mempty
instance ToHeaders DescribeScalingProcessTypes
instance AWSRequest DescribeScalingProcessTypes where
    type Sv DescribeScalingProcessTypes = AutoScaling
    type Rs DescribeScalingProcessTypes = DescribeScalingProcessTypesResponse
    request  = post "DescribeScalingProcessTypes"
    response = xmlResponse
instance FromXML DescribeScalingProcessTypesResponse where
    parseXML = withElement "DescribeScalingProcessTypesResult" $ \x -> DescribeScalingProcessTypesResponse
        <$> x .@? "Processes" .!@ mempty