{-# LANGUAGE OverloadedStrings #-}
module Network.AWS.AutoScalingPlans.Types
(
autoScalingPlans
, _ValidationException
, _InvalidNextTokenException
, _ConcurrentUpdateException
, _InternalServiceException
, _ObjectNotFoundException
, _LimitExceededException
, MetricStatistic (..)
, PolicyType (..)
, ScalableDimension (..)
, ScalingMetricType (..)
, ScalingPlanStatusCode (..)
, ScalingStatusCode (..)
, ServiceNamespace (..)
, ApplicationSource
, applicationSource
, asTagFilters
, asCloudFormationStackARN
, CustomizedScalingMetricSpecification
, customizedScalingMetricSpecification
, csmsDimensions
, csmsUnit
, csmsMetricName
, csmsNamespace
, csmsStatistic
, MetricDimension
, metricDimension
, mdName
, mdValue
, PredefinedScalingMetricSpecification
, predefinedScalingMetricSpecification
, psmsResourceLabel
, psmsPredefinedScalingMetricType
, ScalingInstruction
, scalingInstruction
, siServiceNamespace
, siResourceId
, siScalableDimension
, siMinCapacity
, siMaxCapacity
, siTargetTrackingConfigurations
, ScalingPlan
, scalingPlan
, spCreationTime
, spStatusStartTime
, spStatusMessage
, spScalingPlanName
, spScalingPlanVersion
, spApplicationSource
, spScalingInstructions
, spStatusCode
, ScalingPlanResource
, scalingPlanResource
, sprScalingStatusMessage
, sprScalingPolicies
, sprScalingPlanName
, sprScalingPlanVersion
, sprServiceNamespace
, sprResourceId
, sprScalableDimension
, sprScalingStatusCode
, ScalingPolicy
, scalingPolicy
, spTargetTrackingConfiguration
, spPolicyName
, spPolicyType
, TagFilter
, tagFilter
, tfValues
, tfKey
, TargetTrackingConfiguration
, targetTrackingConfiguration
, ttcEstimatedInstanceWarmup
, ttcPredefinedScalingMetricSpecification
, ttcScaleInCooldown
, ttcDisableScaleIn
, ttcCustomizedScalingMetricSpecification
, ttcScaleOutCooldown
, ttcTargetValue
) where
import Network.AWS.AutoScalingPlans.Types.Product
import Network.AWS.AutoScalingPlans.Types.Sum
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Sign.V4
autoScalingPlans :: Service
autoScalingPlans =
Service
{ _svcAbbrev = "AutoScalingPlans"
, _svcSigner = v4
, _svcPrefix = "autoscaling"
, _svcVersion = "2018-01-06"
, _svcEndpoint = defaultEndpoint autoScalingPlans
, _svcTimeout = Just 70
, _svcCheck = statusSuccess
, _svcError = parseJSONError "AutoScalingPlans"
, _svcRetry = retry
}
where
retry =
Exponential
{ _retryBase = 5.0e-2
, _retryGrowth = 2
, _retryAttempts = 5
, _retryCheck = check
}
check e
| has (hasCode "ThrottledException" . hasStatus 400) e =
Just "throttled_exception"
| has (hasStatus 429) e = Just "too_many_requests"
| has (hasCode "ThrottlingException" . hasStatus 400) e =
Just "throttling_exception"
| has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
| has (hasStatus 504) e = Just "gateway_timeout"
| has (hasCode "RequestThrottledException" . hasStatus 400) e =
Just "request_throttled_exception"
| has (hasStatus 502) e = Just "bad_gateway"
| has (hasStatus 503) e = Just "service_unavailable"
| has (hasStatus 500) e = Just "general_server_error"
| has (hasStatus 509) e = Just "limit_exceeded"
| otherwise = Nothing
_ValidationException :: AsError a => Getting (First ServiceError) a ServiceError
_ValidationException = _MatchServiceError autoScalingPlans "ValidationException"
_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
_InvalidNextTokenException =
_MatchServiceError autoScalingPlans "InvalidNextTokenException"
_ConcurrentUpdateException :: AsError a => Getting (First ServiceError) a ServiceError
_ConcurrentUpdateException =
_MatchServiceError autoScalingPlans "ConcurrentUpdateException"
_InternalServiceException :: AsError a => Getting (First ServiceError) a ServiceError
_InternalServiceException =
_MatchServiceError autoScalingPlans "InternalServiceException"
_ObjectNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
_ObjectNotFoundException =
_MatchServiceError autoScalingPlans "ObjectNotFoundException"
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
_LimitExceededException =
_MatchServiceError autoScalingPlans "LimitExceededException"