{-# LANGUAGE OverloadedStrings #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.MarketplaceMetering.Types -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.MarketplaceMetering.Types ( -- * Service Configuration marketplaceMetering -- * Errors , _InvalidEndpointRegionException , _InvalidProductCodeException , _InvalidUsageDimensionException , _DuplicateRequestException , _TimestampOutOfBoundsException , _ThrottlingException , _InternalServiceErrorException , _InvalidTokenException , _ExpiredTokenException , _InvalidCustomerIdentifierException -- * UsageRecordResultStatus , UsageRecordResultStatus (..) -- * UsageRecord , UsageRecord , usageRecord , urTimestamp , urCustomerIdentifier , urDimension , urQuantity -- * UsageRecordResult , UsageRecordResult , usageRecordResult , urrStatus , urrUsageRecord , urrMeteringRecordId ) where import Network.AWS.Lens import Network.AWS.MarketplaceMetering.Types.Product import Network.AWS.MarketplaceMetering.Types.Sum import Network.AWS.Prelude import Network.AWS.Sign.V4 -- | API version @2016-01-14@ of the Amazon Marketplace Metering SDK configuration. marketplaceMetering :: Service marketplaceMetering = Service { _svcAbbrev = "MarketplaceMetering" , _svcSigner = v4 , _svcPrefix = "metering.marketplace" , _svcVersion = "2016-01-14" , _svcEndpoint = defaultEndpoint marketplaceMetering , _svcTimeout = Just 70 , _svcCheck = statusSuccess , _svcError = parseJSONError "MarketplaceMetering" , _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 -- | The endpoint being called is in a region different from your EC2 instance. The region of the Metering service endpoint and the region of the EC2 instance must match. -- -- _InvalidEndpointRegionException :: AsError a => Getting (First ServiceError) a ServiceError _InvalidEndpointRegionException = _MatchServiceError marketplaceMetering "InvalidEndpointRegionException" -- | The product code passed does not match the product code used for publishing the product. -- -- _InvalidProductCodeException :: AsError a => Getting (First ServiceError) a ServiceError _InvalidProductCodeException = _MatchServiceError marketplaceMetering "InvalidProductCodeException" -- | The usage dimension does not match one of the UsageDimensions associated with products. -- -- _InvalidUsageDimensionException :: AsError a => Getting (First ServiceError) a ServiceError _InvalidUsageDimensionException = _MatchServiceError marketplaceMetering "InvalidUsageDimensionException" -- | A metering record has already been emitted by the same EC2 instance for the given {usageDimension, timestamp} with a different usageQuantity. -- -- _DuplicateRequestException :: AsError a => Getting (First ServiceError) a ServiceError _DuplicateRequestException = _MatchServiceError marketplaceMetering "DuplicateRequestException" -- | The timestamp value passed in the meterUsage() is out of allowed range. -- -- _TimestampOutOfBoundsException :: AsError a => Getting (First ServiceError) a ServiceError _TimestampOutOfBoundsException = _MatchServiceError marketplaceMetering "TimestampOutOfBoundsException" -- | The calls to the MeterUsage API are throttled. -- -- _ThrottlingException :: AsError a => Getting (First ServiceError) a ServiceError _ThrottlingException = _MatchServiceError marketplaceMetering "ThrottlingException" -- | An internal error has occurred. Retry your request. If the problem persists, post a message with details on the AWS forums. -- -- _InternalServiceErrorException :: AsError a => Getting (First ServiceError) a ServiceError _InternalServiceErrorException = _MatchServiceError marketplaceMetering "InternalServiceErrorException" -- | Prism for InvalidTokenException' errors. _InvalidTokenException :: AsError a => Getting (First ServiceError) a ServiceError _InvalidTokenException = _MatchServiceError marketplaceMetering "InvalidTokenException" -- | The submitted registration token has expired. This can happen if the buyer's browser takes too long to redirect to your page, the buyer has resubmitted the registration token, or your application has held on to the registration token for too long. Your SaaS registration website should redeem this token as soon as it is submitted by the buyer's browser. -- -- _ExpiredTokenException :: AsError a => Getting (First ServiceError) a ServiceError _ExpiredTokenException = _MatchServiceError marketplaceMetering "ExpiredTokenException" -- | You have metered usage for a CustomerIdentifier that does not exist. -- -- _InvalidCustomerIdentifierException :: AsError a => Getting (First ServiceError) a ServiceError _InvalidCustomerIdentifierException = _MatchServiceError marketplaceMetering "InvalidCustomerIdentifierException"