module Network.AWS.CloudWatch.Types
(
CloudWatch
, _LimitExceededFault
, _InvalidNextToken
, _InternalServiceFault
, _InvalidParameterValueException
, _InvalidFormatFault
, _MissingRequiredParameterException
, _InvalidParameterCombinationException
, _ResourceNotFound
, ComparisonOperator (..)
, HistoryItemType (..)
, StandardUnit (..)
, StateValue (..)
, Statistic (..)
, AlarmHistoryItem
, alarmHistoryItem
, ahiAlarmName
, ahiHistoryItemType
, ahiHistoryData
, ahiTimestamp
, ahiHistorySummary
, Datapoint
, datapoint
, dSampleCount
, dMaximum
, dAverage
, dMinimum
, dSum
, dTimestamp
, dUnit
, Dimension
, dimension
, dName
, dValue
, DimensionFilter
, dimensionFilter
, dfValue
, dfName
, Metric
, metric
, mMetricName
, mNamespace
, mDimensions
, MetricAlarm
, metricAlarm
, maAlarmName
, maStateUpdatedTimestamp
, maAlarmDescription
, maPeriod
, maEvaluationPeriods
, maMetricName
, maNamespace
, maOKActions
, maComparisonOperator
, maStateValue
, maThreshold
, maActionsEnabled
, maAlarmConfigurationUpdatedTimestamp
, maInsufficientDataActions
, maDimensions
, maStateReasonData
, maStateReason
, maAlarmARN
, maAlarmActions
, maStatistic
, maUnit
, MetricDatum
, metricDatum
, mdValue
, mdDimensions
, mdTimestamp
, mdStatisticValues
, mdUnit
, mdMetricName
, StatisticSet
, statisticSet
, ssSampleCount
, ssSum
, ssMinimum
, ssMaximum
) where
import Network.AWS.CloudWatch.Types.Product
import Network.AWS.CloudWatch.Types.Sum
import Network.AWS.Prelude
import Network.AWS.Sign.V4
data CloudWatch
instance AWSService CloudWatch where
type Sg CloudWatch = V4
service = const svc
where
svc =
Service
{ _svcAbbrev = "CloudWatch"
, _svcPrefix = "monitoring"
, _svcVersion = "2010-08-01"
, _svcEndpoint = defaultEndpoint svc
, _svcTimeout = Just 70
, _svcStatus = statusSuccess
, _svcError = parseXMLError
, _svcRetry = retry
}
retry =
Exponential
{ _retryBase = 5.0e-2
, _retryGrowth = 2
, _retryAttempts = 5
, _retryCheck = check
}
check e
| has (hasCode "ThrottlingException" . hasStatus 400) e =
Just "throttling_exception"
| has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
| has (hasStatus 503) e = Just "service_unavailable"
| has (hasStatus 500) e = Just "general_server_error"
| has (hasStatus 509) e = Just "limit_exceeded"
| otherwise = Nothing
_LimitExceededFault :: AsError a => Getting (First ServiceError) a ServiceError
_LimitExceededFault = _ServiceError . hasStatus 400 . hasCode "LimitExceeded"
_InvalidNextToken :: AsError a => Getting (First ServiceError) a ServiceError
_InvalidNextToken = _ServiceError . hasStatus 400 . hasCode "InvalidNextToken"
_InternalServiceFault :: AsError a => Getting (First ServiceError) a ServiceError
_InternalServiceFault =
_ServiceError . hasStatus 500 . hasCode "InternalServiceError"
_InvalidParameterValueException :: AsError a => Getting (First ServiceError) a ServiceError
_InvalidParameterValueException =
_ServiceError . hasStatus 400 . hasCode "InvalidParameterValue"
_InvalidFormatFault :: AsError a => Getting (First ServiceError) a ServiceError
_InvalidFormatFault = _ServiceError . hasStatus 400 . hasCode "InvalidFormat"
_MissingRequiredParameterException :: AsError a => Getting (First ServiceError) a ServiceError
_MissingRequiredParameterException =
_ServiceError . hasStatus 400 . hasCode "MissingParameter"
_InvalidParameterCombinationException :: AsError a => Getting (First ServiceError) a ServiceError
_InvalidParameterCombinationException =
_ServiceError . hasStatus 400 . hasCode "InvalidParameterCombination"
_ResourceNotFound :: AsError a => Getting (First ServiceError) a ServiceError
_ResourceNotFound = _ServiceError . hasStatus 404 . hasCode "ResourceNotFound"