{-# LANGUAGE OverloadedStrings #-}
module Network.AWS.CostExplorer.Types
(
costExplorer
, _BillExpirationException
, _RequestChangedException
, _InvalidNextTokenException
, _DataUnavailableException
, _LimitExceededException
, AccountScope (..)
, Context (..)
, Dimension (..)
, Granularity (..)
, GroupDefinitionType (..)
, LookbackPeriodInDays (..)
, OfferingClass (..)
, PaymentOption (..)
, TermInYears (..)
, Coverage
, coverage
, cCoverageHours
, CoverageByTime
, coverageByTime
, cbtGroups
, cbtTimePeriod
, cbtTotal
, CoverageHours
, coverageHours
, chCoverageHoursPercentage
, chOnDemandHours
, chTotalRunningHours
, chReservedHours
, DateInterval
, dateInterval
, diStart
, diEnd
, DimensionValues
, dimensionValues
, dvValues
, dvKey
, DimensionValuesWithAttributes
, dimensionValuesWithAttributes
, dvwaValue
, dvwaAttributes
, EC2InstanceDetails
, ec2InstanceDetails
, eidCurrentGeneration
, eidPlatform
, eidFamily
, eidInstanceType
, eidAvailabilityZone
, eidSizeFlexEligible
, eidTenancy
, eidRegion
, EC2Specification
, ec2Specification
, esOfferingClass
, Expression
, expression
, eNot
, eAnd
, eOr
, eDimensions
, eTags
, Group
, group'
, gMetrics
, gKeys
, GroupDefinition
, groupDefinition
, gdKey
, gdType
, InstanceDetails
, instanceDetails
, idRDSInstanceDetails
, idEC2InstanceDetails
, MetricValue
, metricValue
, mvAmount
, mvUnit
, RDSInstanceDetails
, rdsInstanceDetails
, ridCurrentGeneration
, ridDeploymentOption
, ridFamily
, ridInstanceType
, ridLicenseModel
, ridSizeFlexEligible
, ridRegion
, ridDatabaseEngine
, ReservationAggregates
, reservationAggregates
, raPurchasedHours
, raTotalActualHours
, raUtilizationPercentage
, raUnusedHours
, ReservationCoverageGroup
, reservationCoverageGroup
, rcgCoverage
, rcgAttributes
, ReservationPurchaseRecommendation
, reservationPurchaseRecommendation
, rprTermInYears
, rprRecommendationSummary
, rprServiceSpecification
, rprAccountScope
, rprRecommendationDetails
, rprLookbackPeriodInDays
, rprPaymentOption
, ReservationPurchaseRecommendationDetail
, reservationPurchaseRecommendationDetail
, rprdMaximumNormalizedUnitsUsedPerHour
, rprdRecurringStandardMonthlyCost
, rprdAverageNormalizedUnitsUsedPerHour
, rprdCurrencyCode
, rprdEstimatedMonthlySavingsPercentage
, rprdRecommendedNormalizedUnitsToPurchase
, rprdAverageUtilization
, rprdEstimatedMonthlySavingsAmount
, rprdUpfrontCost
, rprdMinimumNormalizedUnitsUsedPerHour
, rprdEstimatedMonthlyOnDemandCost
, rprdRecommendedNumberOfInstancesToPurchase
, rprdMaximumNumberOfInstancesUsedPerHour
, rprdEstimatedReservationCostForLookbackPeriod
, rprdInstanceDetails
, rprdAverageNumberOfInstancesUsedPerHour
, rprdMinimumNumberOfInstancesUsedPerHour
, rprdEstimatedBreakEvenInMonths
, ReservationPurchaseRecommendationMetadata
, reservationPurchaseRecommendationMetadata
, rprmRecommendationId
, rprmGenerationTimestamp
, ReservationPurchaseRecommendationSummary
, reservationPurchaseRecommendationSummary
, rprsCurrencyCode
, rprsTotalEstimatedMonthlySavingsPercentage
, rprsTotalEstimatedMonthlySavingsAmount
, ReservationUtilizationGroup
, reservationUtilizationGroup
, rugValue
, rugKey
, rugAttributes
, rugUtilization
, ResultByTime
, resultByTime
, rbtGroups
, rbtTimePeriod
, rbtTotal
, rbtEstimated
, ServiceSpecification
, serviceSpecification
, ssEC2Specification
, TagValues
, tagValues
, tvValues
, tvKey
, UtilizationByTime
, utilizationByTime
, ubtGroups
, ubtTimePeriod
, ubtTotal
) where
import Network.AWS.CostExplorer.Types.Product
import Network.AWS.CostExplorer.Types.Sum
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Sign.V4
costExplorer :: Service
costExplorer =
Service
{ _svcAbbrev = "CostExplorer"
, _svcSigner = v4
, _svcPrefix = "ce"
, _svcVersion = "2017-10-25"
, _svcEndpoint = defaultEndpoint costExplorer
, _svcTimeout = Just 70
, _svcCheck = statusSuccess
, _svcError = parseJSONError "CostExplorer"
, _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
_BillExpirationException :: AsError a => Getting (First ServiceError) a ServiceError
_BillExpirationException =
_MatchServiceError costExplorer "BillExpirationException"
_RequestChangedException :: AsError a => Getting (First ServiceError) a ServiceError
_RequestChangedException =
_MatchServiceError costExplorer "RequestChangedException"
_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
_InvalidNextTokenException =
_MatchServiceError costExplorer "InvalidNextTokenException"
_DataUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError
_DataUnavailableException =
_MatchServiceError costExplorer "DataUnavailableException"
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
_LimitExceededException =
_MatchServiceError costExplorer "LimitExceededException"