{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Module : Network.AWS.AutoScaling.EnableMetricsCollection -- Copyright : (c) 2013-2014 Brendan Hay -- License : This Source Code Form is subject to the terms of -- the Mozilla Public License, v. 2.0. -- A copy of the MPL can be found in the LICENSE file or -- you can obtain it at http://mozilla.org/MPL/2.0/. -- Maintainer : Brendan Hay -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | Enables monitoring of the specified metrics for the specified Auto Scaling -- group. -- -- You can only enable metrics collection if 'InstanceMonitoring' in the launch -- configuration for the group is set to 'True'. -- -- module Network.AWS.AutoScaling.EnableMetricsCollection ( -- * Request EnableMetricsCollection -- ** Request constructor , enableMetricsCollection -- ** Request lenses , emcAutoScalingGroupName , emcGranularity , emcMetrics -- * Response , EnableMetricsCollectionResponse -- ** Response constructor , enableMetricsCollectionResponse ) where import Network.AWS.Prelude import Network.AWS.Request.Query import Network.AWS.AutoScaling.Types import qualified GHC.Exts data EnableMetricsCollection = EnableMetricsCollection { _emcAutoScalingGroupName :: Text , _emcGranularity :: Text , _emcMetrics :: List "member" Text } deriving (Eq, Ord, Show) -- | 'EnableMetricsCollection' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'emcAutoScalingGroupName' @::@ 'Text' -- -- * 'emcGranularity' @::@ 'Text' -- -- * 'emcMetrics' @::@ ['Text'] -- enableMetricsCollection :: Text -- ^ 'emcAutoScalingGroupName' -> Text -- ^ 'emcGranularity' -> EnableMetricsCollection enableMetricsCollection p1 p2 = EnableMetricsCollection { _emcAutoScalingGroupName = p1 , _emcGranularity = p2 , _emcMetrics = mempty } -- | The name or ARN of the Auto Scaling group. emcAutoScalingGroupName :: Lens' EnableMetricsCollection Text emcAutoScalingGroupName = lens _emcAutoScalingGroupName (\s a -> s { _emcAutoScalingGroupName = a }) -- | The granularity to associate with the metrics to collect. Currently, the only -- valid value is "1Minute". emcGranularity :: Lens' EnableMetricsCollection Text emcGranularity = lens _emcGranularity (\s a -> s { _emcGranularity = a }) -- | One or more of the following metrics: -- -- GroupMinSize -- -- GroupMaxSize -- -- GroupDesiredCapacity -- -- GroupInServiceInstances -- -- GroupPendingInstances -- -- GroupStandbyInstances -- -- GroupTerminatingInstances -- -- GroupTotalInstances -- -- If you omit this parameter, all metrics are enabled. -- -- The 'GroupStandbyInstances' metric is not returned by default. You must -- explicitly request it when calling 'EnableMetricsCollection'. -- -- emcMetrics :: Lens' EnableMetricsCollection [Text] emcMetrics = lens _emcMetrics (\s a -> s { _emcMetrics = a }) . _List data EnableMetricsCollectionResponse = EnableMetricsCollectionResponse deriving (Eq, Ord, Show, Generic) -- | 'EnableMetricsCollectionResponse' constructor. enableMetricsCollectionResponse :: EnableMetricsCollectionResponse enableMetricsCollectionResponse = EnableMetricsCollectionResponse instance ToPath EnableMetricsCollection where toPath = const "/" instance ToQuery EnableMetricsCollection where toQuery EnableMetricsCollection{..} = mconcat [ "AutoScalingGroupName" =? _emcAutoScalingGroupName , "Granularity" =? _emcGranularity , "Metrics" =? _emcMetrics ] instance ToHeaders EnableMetricsCollection instance AWSRequest EnableMetricsCollection where type Sv EnableMetricsCollection = AutoScaling type Rs EnableMetricsCollection = EnableMetricsCollectionResponse request = post "EnableMetricsCollection" response = nullResponse EnableMetricsCollectionResponse