diff --git a/amazonka-cloudwatch.cabal b/amazonka-cloudwatch.cabal
--- a/amazonka-cloudwatch.cabal
+++ b/amazonka-cloudwatch.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-cloudwatch
-version:               0.0.0
+version:               0.0.1
 synopsis:              Amazon CloudWatch SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -57,5 +57,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core
-        , base          >= 4.7 && < 5
+          amazonka-core == 0.0.1.*
+        , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/CloudWatch/DescribeAlarmHistory.hs b/gen/Network/AWS/CloudWatch/DescribeAlarmHistory.hs
--- a/gen/Network/AWS/CloudWatch/DescribeAlarmHistory.hs
+++ b/gen/Network/AWS/CloudWatch/DescribeAlarmHistory.hs
@@ -56,11 +56,11 @@
 data DescribeAlarmHistory = DescribeAlarmHistory
     { _dahAlarmName       :: Maybe Text
     , _dahEndDate         :: Maybe RFC822
-    , _dahHistoryItemType :: Maybe Text
+    , _dahHistoryItemType :: Maybe HistoryItemType
     , _dahMaxRecords      :: Maybe Nat
     , _dahNextToken       :: Maybe Text
     , _dahStartDate       :: Maybe RFC822
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'DescribeAlarmHistory' constructor.
 --
@@ -70,7 +70,7 @@
 --
 -- * 'dahEndDate' @::@ 'Maybe' 'UTCTime'
 --
--- * 'dahHistoryItemType' @::@ 'Maybe' 'Text'
+-- * 'dahHistoryItemType' @::@ 'Maybe' 'HistoryItemType'
 --
 -- * 'dahMaxRecords' @::@ 'Maybe' 'Natural'
 --
@@ -97,7 +97,7 @@
 dahEndDate = lens _dahEndDate (\s a -> s { _dahEndDate = a }) . mapping _Time
 
 -- | The type of alarm histories to retrieve.
-dahHistoryItemType :: Lens' DescribeAlarmHistory (Maybe Text)
+dahHistoryItemType :: Lens' DescribeAlarmHistory (Maybe HistoryItemType)
 dahHistoryItemType =
     lens _dahHistoryItemType (\s a -> s { _dahHistoryItemType = a })
 
diff --git a/gen/Network/AWS/CloudWatch/DescribeAlarms.hs b/gen/Network/AWS/CloudWatch/DescribeAlarms.hs
--- a/gen/Network/AWS/CloudWatch/DescribeAlarms.hs
+++ b/gen/Network/AWS/CloudWatch/DescribeAlarms.hs
@@ -59,8 +59,8 @@
     , _daAlarmNames      :: List "AlarmNames" Text
     , _daMaxRecords      :: Maybe Nat
     , _daNextToken       :: Maybe Text
-    , _daStateValue      :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    , _daStateValue      :: Maybe StateValue
+    } deriving (Eq, Show)
 
 -- | 'DescribeAlarms' constructor.
 --
@@ -76,7 +76,7 @@
 --
 -- * 'daNextToken' @::@ 'Maybe' 'Text'
 --
--- * 'daStateValue' @::@ 'Maybe' 'Text'
+-- * 'daStateValue' @::@ 'Maybe' 'StateValue'
 --
 describeAlarms :: DescribeAlarms
 describeAlarms = DescribeAlarms
@@ -112,7 +112,7 @@
 daNextToken = lens _daNextToken (\s a -> s { _daNextToken = a })
 
 -- | The state value to be used in matching alarms.
-daStateValue :: Lens' DescribeAlarms (Maybe Text)
+daStateValue :: Lens' DescribeAlarms (Maybe StateValue)
 daStateValue = lens _daStateValue (\s a -> s { _daStateValue = a })
 
 data DescribeAlarmsResponse = DescribeAlarmsResponse
diff --git a/gen/Network/AWS/CloudWatch/DescribeAlarmsForMetric.hs b/gen/Network/AWS/CloudWatch/DescribeAlarmsForMetric.hs
--- a/gen/Network/AWS/CloudWatch/DescribeAlarmsForMetric.hs
+++ b/gen/Network/AWS/CloudWatch/DescribeAlarmsForMetric.hs
@@ -56,8 +56,8 @@
     , _dafmMetricName :: Text
     , _dafmNamespace  :: Text
     , _dafmPeriod     :: Maybe Nat
-    , _dafmStatistic  :: Maybe Text
-    , _dafmUnit       :: Maybe Text
+    , _dafmStatistic  :: Maybe Statistic
+    , _dafmUnit       :: Maybe StandardUnit
     } deriving (Eq, Show)
 
 -- | 'DescribeAlarmsForMetric' constructor.
@@ -72,9 +72,9 @@
 --
 -- * 'dafmPeriod' @::@ 'Maybe' 'Natural'
 --
--- * 'dafmStatistic' @::@ 'Maybe' 'Text'
+-- * 'dafmStatistic' @::@ 'Maybe' 'Statistic'
 --
--- * 'dafmUnit' @::@ 'Maybe' 'Text'
+-- * 'dafmUnit' @::@ 'Maybe' 'StandardUnit'
 --
 describeAlarmsForMetric :: Text -- ^ 'dafmMetricName'
                         -> Text -- ^ 'dafmNamespace'
@@ -105,11 +105,11 @@
 dafmPeriod = lens _dafmPeriod (\s a -> s { _dafmPeriod = a }) . mapping _Nat
 
 -- | The statistic for the metric.
-dafmStatistic :: Lens' DescribeAlarmsForMetric (Maybe Text)
+dafmStatistic :: Lens' DescribeAlarmsForMetric (Maybe Statistic)
 dafmStatistic = lens _dafmStatistic (\s a -> s { _dafmStatistic = a })
 
 -- | The unit for the metric.
-dafmUnit :: Lens' DescribeAlarmsForMetric (Maybe Text)
+dafmUnit :: Lens' DescribeAlarmsForMetric (Maybe StandardUnit)
 dafmUnit = lens _dafmUnit (\s a -> s { _dafmUnit = a })
 
 newtype DescribeAlarmsForMetricResponse = DescribeAlarmsForMetricResponse
diff --git a/gen/Network/AWS/CloudWatch/GetMetricStatistics.hs b/gen/Network/AWS/CloudWatch/GetMetricStatistics.hs
--- a/gen/Network/AWS/CloudWatch/GetMetricStatistics.hs
+++ b/gen/Network/AWS/CloudWatch/GetMetricStatistics.hs
@@ -80,8 +80,8 @@
     , _gmsNamespace  :: Text
     , _gmsPeriod     :: Nat
     , _gmsStartTime  :: RFC822
-    , _gmsStatistics :: List1 "Statistics" Text
-    , _gmsUnit       :: Maybe Text
+    , _gmsStatistics :: List1 "Statistics" Statistic
+    , _gmsUnit       :: Maybe StandardUnit
     } deriving (Eq, Show)
 
 -- | 'GetMetricStatistics' constructor.
@@ -100,16 +100,16 @@
 --
 -- * 'gmsStartTime' @::@ 'UTCTime'
 --
--- * 'gmsStatistics' @::@ 'NonEmpty' 'Text'
+-- * 'gmsStatistics' @::@ 'NonEmpty' 'Statistic'
 --
--- * 'gmsUnit' @::@ 'Maybe' 'Text'
+-- * 'gmsUnit' @::@ 'Maybe' 'StandardUnit'
 --
 getMetricStatistics :: Text -- ^ 'gmsNamespace'
                     -> Text -- ^ 'gmsMetricName'
                     -> UTCTime -- ^ 'gmsStartTime'
                     -> UTCTime -- ^ 'gmsEndTime'
                     -> Natural -- ^ 'gmsPeriod'
-                    -> NonEmpty Text -- ^ 'gmsStatistics'
+                    -> NonEmpty Statistic -- ^ 'gmsStatistics'
                     -> GetMetricStatistics
 getMetricStatistics p1 p2 p3 p4 p5 p6 = GetMetricStatistics
     { _gmsNamespace  = p1
@@ -156,11 +156,11 @@
 -- statistics returned by GetMetricStatistics, go to Statistics in the
 -- Amazon CloudWatch Developer Guide. Valid Values: Average | Sum |
 -- SampleCount | Maximum | Minimum.
-gmsStatistics :: Lens' GetMetricStatistics (NonEmpty Text)
+gmsStatistics :: Lens' GetMetricStatistics (NonEmpty Statistic)
 gmsStatistics = lens _gmsStatistics (\s a -> s { _gmsStatistics = a }) . _List1
 
 -- | The unit for the metric.
-gmsUnit :: Lens' GetMetricStatistics (Maybe Text)
+gmsUnit :: Lens' GetMetricStatistics (Maybe StandardUnit)
 gmsUnit = lens _gmsUnit (\s a -> s { _gmsUnit = a })
 
 data GetMetricStatisticsResponse = GetMetricStatisticsResponse
diff --git a/gen/Network/AWS/CloudWatch/PutMetricAlarm.hs b/gen/Network/AWS/CloudWatch/PutMetricAlarm.hs
--- a/gen/Network/AWS/CloudWatch/PutMetricAlarm.hs
+++ b/gen/Network/AWS/CloudWatch/PutMetricAlarm.hs
@@ -67,7 +67,7 @@
     , _pmaAlarmActions            :: List "OKActions" Text
     , _pmaAlarmDescription        :: Maybe Text
     , _pmaAlarmName               :: Text
-    , _pmaComparisonOperator      :: Text
+    , _pmaComparisonOperator      :: ComparisonOperator
     , _pmaDimensions              :: List "Dimensions" Dimension
     , _pmaEvaluationPeriods       :: Nat
     , _pmaInsufficientDataActions :: List "OKActions" Text
@@ -75,9 +75,9 @@
     , _pmaNamespace               :: Text
     , _pmaOKActions               :: List "OKActions" Text
     , _pmaPeriod                  :: Nat
-    , _pmaStatistic               :: Text
+    , _pmaStatistic               :: Statistic
     , _pmaThreshold               :: Double
-    , _pmaUnit                    :: Maybe Text
+    , _pmaUnit                    :: Maybe StandardUnit
     } deriving (Eq, Show)
 
 -- | 'PutMetricAlarm' constructor.
@@ -92,7 +92,7 @@
 --
 -- * 'pmaAlarmName' @::@ 'Text'
 --
--- * 'pmaComparisonOperator' @::@ 'Text'
+-- * 'pmaComparisonOperator' @::@ 'ComparisonOperator'
 --
 -- * 'pmaDimensions' @::@ ['Dimension']
 --
@@ -108,20 +108,20 @@
 --
 -- * 'pmaPeriod' @::@ 'Natural'
 --
--- * 'pmaStatistic' @::@ 'Text'
+-- * 'pmaStatistic' @::@ 'Statistic'
 --
 -- * 'pmaThreshold' @::@ 'Double'
 --
--- * 'pmaUnit' @::@ 'Maybe' 'Text'
+-- * 'pmaUnit' @::@ 'Maybe' 'StandardUnit'
 --
 putMetricAlarm :: Text -- ^ 'pmaAlarmName'
                -> Text -- ^ 'pmaMetricName'
                -> Text -- ^ 'pmaNamespace'
-               -> Text -- ^ 'pmaStatistic'
+               -> Statistic -- ^ 'pmaStatistic'
                -> Natural -- ^ 'pmaPeriod'
                -> Natural -- ^ 'pmaEvaluationPeriods'
                -> Double -- ^ 'pmaThreshold'
-               -> Text -- ^ 'pmaComparisonOperator'
+               -> ComparisonOperator -- ^ 'pmaComparisonOperator'
                -> PutMetricAlarm
 putMetricAlarm p1 p2 p3 p4 p5 p6 p7 p8 = PutMetricAlarm
     { _pmaAlarmName               = p1
@@ -167,7 +167,7 @@
 -- | The arithmetic operation to use when comparing the specified Statistic
 -- and Threshold. The specified Statistic value is used as the first
 -- operand.
-pmaComparisonOperator :: Lens' PutMetricAlarm Text
+pmaComparisonOperator :: Lens' PutMetricAlarm ComparisonOperator
 pmaComparisonOperator =
     lens _pmaComparisonOperator (\s a -> s { _pmaComparisonOperator = a })
 
@@ -212,7 +212,7 @@
 pmaPeriod = lens _pmaPeriod (\s a -> s { _pmaPeriod = a }) . _Nat
 
 -- | The statistic to apply to the alarm's associated metric.
-pmaStatistic :: Lens' PutMetricAlarm Text
+pmaStatistic :: Lens' PutMetricAlarm Statistic
 pmaStatistic = lens _pmaStatistic (\s a -> s { _pmaStatistic = a })
 
 -- | The value against which the specified statistic is compared.
@@ -220,7 +220,7 @@
 pmaThreshold = lens _pmaThreshold (\s a -> s { _pmaThreshold = a })
 
 -- | The unit for the alarm's associated metric.
-pmaUnit :: Lens' PutMetricAlarm (Maybe Text)
+pmaUnit :: Lens' PutMetricAlarm (Maybe StandardUnit)
 pmaUnit = lens _pmaUnit (\s a -> s { _pmaUnit = a })
 
 data PutMetricAlarmResponse = PutMetricAlarmResponse
diff --git a/gen/Network/AWS/CloudWatch/SetAlarmState.hs b/gen/Network/AWS/CloudWatch/SetAlarmState.hs
--- a/gen/Network/AWS/CloudWatch/SetAlarmState.hs
+++ b/gen/Network/AWS/CloudWatch/SetAlarmState.hs
@@ -53,8 +53,8 @@
     { _sasAlarmName       :: Text
     , _sasStateReason     :: Text
     , _sasStateReasonData :: Maybe Text
-    , _sasStateValue      :: Text
-    } deriving (Eq, Ord, Show)
+    , _sasStateValue      :: StateValue
+    } deriving (Eq, Show)
 
 -- | 'SetAlarmState' constructor.
 --
@@ -66,10 +66,10 @@
 --
 -- * 'sasStateReasonData' @::@ 'Maybe' 'Text'
 --
--- * 'sasStateValue' @::@ 'Text'
+-- * 'sasStateValue' @::@ 'StateValue'
 --
 setAlarmState :: Text -- ^ 'sasAlarmName'
-              -> Text -- ^ 'sasStateValue'
+              -> StateValue -- ^ 'sasStateValue'
               -> Text -- ^ 'sasStateReason'
               -> SetAlarmState
 setAlarmState p1 p2 p3 = SetAlarmState
@@ -96,7 +96,7 @@
     lens _sasStateReasonData (\s a -> s { _sasStateReasonData = a })
 
 -- | The value of the state.
-sasStateValue :: Lens' SetAlarmState Text
+sasStateValue :: Lens' SetAlarmState StateValue
 sasStateValue = lens _sasStateValue (\s a -> s { _sasStateValue = a })
 
 data SetAlarmStateResponse = SetAlarmStateResponse
diff --git a/gen/Network/AWS/CloudWatch/Types.hs b/gen/Network/AWS/CloudWatch/Types.hs
--- a/gen/Network/AWS/CloudWatch/Types.hs
+++ b/gen/Network/AWS/CloudWatch/Types.hs
@@ -222,7 +222,7 @@
     , _maAlarmConfigurationUpdatedTimestamp :: Maybe RFC822
     , _maAlarmDescription                   :: Maybe Text
     , _maAlarmName                          :: Maybe Text
-    , _maComparisonOperator                 :: Maybe Text
+    , _maComparisonOperator                 :: Maybe ComparisonOperator
     , _maDimensions                         :: List "Dimensions" Dimension
     , _maEvaluationPeriods                  :: Maybe Nat
     , _maInsufficientDataActions            :: List "OKActions" Text
@@ -233,10 +233,10 @@
     , _maStateReason                        :: Maybe Text
     , _maStateReasonData                    :: Maybe Text
     , _maStateUpdatedTimestamp              :: Maybe RFC822
-    , _maStateValue                         :: Maybe Text
-    , _maStatistic                          :: Maybe Text
+    , _maStateValue                         :: Maybe StateValue
+    , _maStatistic                          :: Maybe Statistic
     , _maThreshold                          :: Maybe Double
-    , _maUnit                               :: Maybe Text
+    , _maUnit                               :: Maybe StandardUnit
     } deriving (Eq, Show)
 
 -- | 'MetricAlarm' constructor.
@@ -255,7 +255,7 @@
 --
 -- * 'maAlarmName' @::@ 'Maybe' 'Text'
 --
--- * 'maComparisonOperator' @::@ 'Maybe' 'Text'
+-- * 'maComparisonOperator' @::@ 'Maybe' 'ComparisonOperator'
 --
 -- * 'maDimensions' @::@ ['Dimension']
 --
@@ -277,13 +277,13 @@
 --
 -- * 'maStateUpdatedTimestamp' @::@ 'Maybe' 'UTCTime'
 --
--- * 'maStateValue' @::@ 'Maybe' 'Text'
+-- * 'maStateValue' @::@ 'Maybe' 'StateValue'
 --
--- * 'maStatistic' @::@ 'Maybe' 'Text'
+-- * 'maStatistic' @::@ 'Maybe' 'Statistic'
 --
 -- * 'maThreshold' @::@ 'Maybe' 'Double'
 --
--- * 'maUnit' @::@ 'Maybe' 'Text'
+-- * 'maUnit' @::@ 'Maybe' 'StandardUnit'
 --
 metricAlarm :: MetricAlarm
 metricAlarm = MetricAlarm
@@ -349,7 +349,7 @@
 -- | The arithmetic operation to use when comparing the specified Statistic
 -- and Threshold. The specified Statistic value is used as the first
 -- operand.
-maComparisonOperator :: Lens' MetricAlarm (Maybe Text)
+maComparisonOperator :: Lens' MetricAlarm (Maybe ComparisonOperator)
 maComparisonOperator =
     lens _maComparisonOperator (\s a -> s { _maComparisonOperator = a })
 
@@ -414,11 +414,11 @@
         . mapping _Time
 
 -- | The state value for the alarm.
-maStateValue :: Lens' MetricAlarm (Maybe Text)
+maStateValue :: Lens' MetricAlarm (Maybe StateValue)
 maStateValue = lens _maStateValue (\s a -> s { _maStateValue = a })
 
 -- | The statistic to apply to the alarm's associated metric.
-maStatistic :: Lens' MetricAlarm (Maybe Text)
+maStatistic :: Lens' MetricAlarm (Maybe Statistic)
 maStatistic = lens _maStatistic (\s a -> s { _maStatistic = a })
 
 -- | The value against which the specified statistic is compared.
@@ -426,7 +426,7 @@
 maThreshold = lens _maThreshold (\s a -> s { _maThreshold = a })
 
 -- | The unit of the alarm's associated metric.
-maUnit :: Lens' MetricAlarm (Maybe Text)
+maUnit :: Lens' MetricAlarm (Maybe StandardUnit)
 maUnit = lens _maUnit (\s a -> s { _maUnit = a })
 
 instance FromXML MetricAlarm where
@@ -497,18 +497,20 @@
         ConfigurationUpdate -> "ConfigurationUpdate"
         StateUpdate         -> "StateUpdate"
 
+instance ToByteString HistoryItemType
+instance ToHeader     HistoryItemType
+instance ToQuery      HistoryItemType
+
 instance FromXML HistoryItemType where
     parseXML = parseXMLText "HistoryItemType"
 
-instance ToQuery HistoryItemType where
-    toQuery = toQuery . toText
 
 data MetricDatum = MetricDatum
     { _mdDimensions      :: List "Dimensions" Dimension
     , _mdMetricName      :: Text
     , _mdStatisticValues :: Maybe StatisticSet
     , _mdTimestamp       :: Maybe RFC822
-    , _mdUnit            :: Maybe Text
+    , _mdUnit            :: Maybe StandardUnit
     , _mdValue           :: Maybe Double
     } deriving (Eq, Show)
 
@@ -524,7 +526,7 @@
 --
 -- * 'mdTimestamp' @::@ 'Maybe' 'UTCTime'
 --
--- * 'mdUnit' @::@ 'Maybe' 'Text'
+-- * 'mdUnit' @::@ 'Maybe' 'StandardUnit'
 --
 -- * 'mdValue' @::@ 'Maybe' 'Double'
 --
@@ -563,7 +565,7 @@
 mdTimestamp = lens _mdTimestamp (\s a -> s { _mdTimestamp = a }) . mapping _Time
 
 -- | The unit of the metric.
-mdUnit :: Lens' MetricDatum (Maybe Text)
+mdUnit :: Lens' MetricDatum (Maybe StandardUnit)
 mdUnit = lens _mdUnit (\s a -> s { _mdUnit = a })
 
 -- | The value for the metric. Although the Value parameter accepts numbers of
@@ -684,11 +686,13 @@
         Terabytes       -> "Terabytes"
         TerabytesSecond -> "Terabytes/Second"
 
+instance ToByteString StandardUnit
+instance ToHeader     StandardUnit
+instance ToQuery      StandardUnit
+
 instance FromXML StandardUnit where
     parseXML = parseXMLText "StandardUnit"
 
-instance ToQuery StandardUnit where
-    toQuery = toQuery . toText
 
 data Dimension = Dimension
     { _dName  :: Text
@@ -752,19 +756,21 @@
         LessThanOrEqualToThreshold    -> "LessThanOrEqualToThreshold"
         LessThanThreshold             -> "LessThanThreshold"
 
+instance ToByteString ComparisonOperator
+instance ToHeader     ComparisonOperator
+instance ToQuery      ComparisonOperator
+
 instance FromXML ComparisonOperator where
     parseXML = parseXMLText "ComparisonOperator"
 
-instance ToQuery ComparisonOperator where
-    toQuery = toQuery . toText
 
 data AlarmHistoryItem = AlarmHistoryItem
     { _ahiAlarmName       :: Maybe Text
     , _ahiHistoryData     :: Maybe Text
-    , _ahiHistoryItemType :: Maybe Text
+    , _ahiHistoryItemType :: Maybe HistoryItemType
     , _ahiHistorySummary  :: Maybe Text
     , _ahiTimestamp       :: Maybe RFC822
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'AlarmHistoryItem' constructor.
 --
@@ -774,7 +780,7 @@
 --
 -- * 'ahiHistoryData' @::@ 'Maybe' 'Text'
 --
--- * 'ahiHistoryItemType' @::@ 'Maybe' 'Text'
+-- * 'ahiHistoryItemType' @::@ 'Maybe' 'HistoryItemType'
 --
 -- * 'ahiHistorySummary' @::@ 'Maybe' 'Text'
 --
@@ -798,7 +804,7 @@
 ahiHistoryData = lens _ahiHistoryData (\s a -> s { _ahiHistoryData = a })
 
 -- | The type of alarm history item.
-ahiHistoryItemType :: Lens' AlarmHistoryItem (Maybe Text)
+ahiHistoryItemType :: Lens' AlarmHistoryItem (Maybe HistoryItemType)
 ahiHistoryItemType =
     lens _ahiHistoryItemType (\s a -> s { _ahiHistoryItemType = a })
 
@@ -898,11 +904,13 @@
         InsufficientData -> "INSUFFICIENT_DATA"
         Ok               -> "OK"
 
+instance ToByteString StateValue
+instance ToHeader     StateValue
+instance ToQuery      StateValue
+
 instance FromXML StateValue where
     parseXML = parseXMLText "StateValue"
 
-instance ToQuery StateValue where
-    toQuery = toQuery . toText
 
 data Datapoint = Datapoint
     { _dAverage     :: Maybe Double
@@ -911,8 +919,8 @@
     , _dSampleCount :: Maybe Double
     , _dSum         :: Maybe Double
     , _dTimestamp   :: Maybe RFC822
-    , _dUnit        :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    , _dUnit        :: Maybe StandardUnit
+    } deriving (Eq, Show)
 
 -- | 'Datapoint' constructor.
 --
@@ -930,7 +938,7 @@
 --
 -- * 'dTimestamp' @::@ 'Maybe' 'UTCTime'
 --
--- * 'dUnit' @::@ 'Maybe' 'Text'
+-- * 'dUnit' @::@ 'Maybe' 'StandardUnit'
 --
 datapoint :: Datapoint
 datapoint = Datapoint
@@ -972,7 +980,7 @@
 dTimestamp = lens _dTimestamp (\s a -> s { _dTimestamp = a }) . mapping _Time
 
 -- | The standard unit used for the datapoint.
-dUnit :: Lens' Datapoint (Maybe Text)
+dUnit :: Lens' Datapoint (Maybe StandardUnit)
 dUnit = lens _dUnit (\s a -> s { _dUnit = a })
 
 instance FromXML Datapoint where
@@ -1060,8 +1068,10 @@
         SampleCount -> "SampleCount"
         Sum         -> "Sum"
 
+instance ToByteString Statistic
+instance ToHeader     Statistic
+instance ToQuery      Statistic
+
 instance FromXML Statistic where
     parseXML = parseXMLText "Statistic"
 
-instance ToQuery Statistic where
-    toQuery = toQuery . toText
