{-# 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.CloudWatch.PutMetricData -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Publishes metric data points to Amazon CloudWatch. Amazon CloudWatch associates the data points with the specified metric. If the specified metric does not exist, Amazon CloudWatch creates the metric. When Amazon CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to the < ListMetrics> action. -- -- Each 'PutMetricData' request is limited to 8 KB in size for HTTP GET requests and is limited to 40 KB in size for HTTP POST requests. -- -- Although the 'Value' parameter accepts numbers of type 'Double', Amazon CloudWatch rejects values that are either too small or too large. Values must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2). In addition, special values (e.g., NaN, +Infinity, -Infinity) are not supported. -- -- Data that is timestamped 24 hours or more in the past may take in excess of 48 hours to become available from submission time using 'GetMetricStatistics'. module Network.AWS.CloudWatch.PutMetricData ( -- * Creating a Request putMetricData , PutMetricData -- * Request Lenses , pmdNamespace , pmdMetricData -- * Destructuring the Response , putMetricDataResponse , PutMetricDataResponse ) where import Network.AWS.CloudWatch.Types import Network.AWS.CloudWatch.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'putMetricData' smart constructor. data PutMetricData = PutMetricData' { _pmdNamespace :: !Text , _pmdMetricData :: ![MetricDatum] } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'PutMetricData' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'pmdNamespace' -- -- * 'pmdMetricData' putMetricData :: Text -- ^ 'pmdNamespace' -> PutMetricData putMetricData pNamespace_ = PutMetricData' { _pmdNamespace = pNamespace_ , _pmdMetricData = mempty } -- | The namespace for the metric data. -- -- You cannot specify a namespace that begins with \"AWS\/\". Namespaces that begin with \"AWS\/\" are reserved for other Amazon Web Services products that send metrics to Amazon CloudWatch. pmdNamespace :: Lens' PutMetricData Text pmdNamespace = lens _pmdNamespace (\ s a -> s{_pmdNamespace = a}); -- | A list of data describing the metric. pmdMetricData :: Lens' PutMetricData [MetricDatum] pmdMetricData = lens _pmdMetricData (\ s a -> s{_pmdMetricData = a}) . _Coerce; instance AWSRequest PutMetricData where type Rs PutMetricData = PutMetricDataResponse request = postQuery cloudWatch response = receiveNull PutMetricDataResponse' instance Hashable PutMetricData instance NFData PutMetricData instance ToHeaders PutMetricData where toHeaders = const mempty instance ToPath PutMetricData where toPath = const "/" instance ToQuery PutMetricData where toQuery PutMetricData'{..} = mconcat ["Action" =: ("PutMetricData" :: ByteString), "Version" =: ("2010-08-01" :: ByteString), "Namespace" =: _pmdNamespace, "MetricData" =: toQueryList "member" _pmdMetricData] -- | /See:/ 'putMetricDataResponse' smart constructor. data PutMetricDataResponse = PutMetricDataResponse' deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'PutMetricDataResponse' with the minimum fields required to make a request. -- putMetricDataResponse :: PutMetricDataResponse putMetricDataResponse = PutMetricDataResponse' instance NFData PutMetricDataResponse