{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.Kinesis.DisableEnhancedMonitoring -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Disables enhanced monitoring. -- -- module Network.AWS.Kinesis.DisableEnhancedMonitoring ( -- * Creating a Request disableEnhancedMonitoring , DisableEnhancedMonitoring -- * Request Lenses , demStreamName , demShardLevelMetrics -- * Destructuring the Response , enhancedMonitoringOutput , EnhancedMonitoringOutput -- * Response Lenses , emoDesiredShardLevelMetrics , emoCurrentShardLevelMetrics , emoStreamName ) where import Network.AWS.Kinesis.Types import Network.AWS.Kinesis.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | Represents the input for 'DisableEnhancedMonitoring' . -- -- -- -- /See:/ 'disableEnhancedMonitoring' smart constructor. data DisableEnhancedMonitoring = DisableEnhancedMonitoring' { _demStreamName :: !Text , _demShardLevelMetrics :: ![MetricsName] } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'DisableEnhancedMonitoring' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'demStreamName' - The name of the Amazon Kinesis stream for which to disable enhanced monitoring. -- -- * 'demShardLevelMetrics' - List of shard-level metrics to disable. The following are the valid shard-level metrics. The value "@ALL@ " disables every metric. * @IncomingBytes@ * @IncomingRecords@ * @OutgoingBytes@ * @OutgoingRecords@ * @WriteProvisionedThroughputExceeded@ * @ReadProvisionedThroughputExceeded@ * @IteratorAgeMilliseconds@ * @ALL@ For more information, see in the /Amazon Kinesis Streams Developer Guide/ . disableEnhancedMonitoring :: Text -- ^ 'demStreamName' -> DisableEnhancedMonitoring disableEnhancedMonitoring pStreamName_ = DisableEnhancedMonitoring' {_demStreamName = pStreamName_, _demShardLevelMetrics = mempty} -- | The name of the Amazon Kinesis stream for which to disable enhanced monitoring. demStreamName :: Lens' DisableEnhancedMonitoring Text demStreamName = lens _demStreamName (\ s a -> s{_demStreamName = a}); -- | List of shard-level metrics to disable. The following are the valid shard-level metrics. The value "@ALL@ " disables every metric. * @IncomingBytes@ * @IncomingRecords@ * @OutgoingBytes@ * @OutgoingRecords@ * @WriteProvisionedThroughputExceeded@ * @ReadProvisionedThroughputExceeded@ * @IteratorAgeMilliseconds@ * @ALL@ For more information, see in the /Amazon Kinesis Streams Developer Guide/ . demShardLevelMetrics :: Lens' DisableEnhancedMonitoring [MetricsName] demShardLevelMetrics = lens _demShardLevelMetrics (\ s a -> s{_demShardLevelMetrics = a}) . _Coerce; instance AWSRequest DisableEnhancedMonitoring where type Rs DisableEnhancedMonitoring = EnhancedMonitoringOutput request = postJSON kinesis response = receiveJSON (\ s h x -> eitherParseJSON x) instance Hashable DisableEnhancedMonitoring where instance NFData DisableEnhancedMonitoring where instance ToHeaders DisableEnhancedMonitoring where toHeaders = const (mconcat ["X-Amz-Target" =# ("Kinesis_20131202.DisableEnhancedMonitoring" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON DisableEnhancedMonitoring where toJSON DisableEnhancedMonitoring'{..} = object (catMaybes [Just ("StreamName" .= _demStreamName), Just ("ShardLevelMetrics" .= _demShardLevelMetrics)]) instance ToPath DisableEnhancedMonitoring where toPath = const "/" instance ToQuery DisableEnhancedMonitoring where toQuery = const mempty