{-# LANGUAGE OverloadedStrings #-}
module Network.AWS.Snowball.Types
(
snowball
, _InvalidResourceException
, _UnsupportedAddressException
, _KMSRequestFailedException
, _InvalidJobStateException
, _InvalidAddressException
, JobState (..)
, JobType (..)
, ShippingOption (..)
, SnowballCapacity (..)
, Address
, address
, aStreet3
, aLandmark
, aPostalCode
, aCountry
, aStateOrProvince
, aStreet2
, aAddressId
, aCity
, aPhoneNumber
, aCompany
, aName
, aPrefectureOrDistrict
, aStreet1
, DataTransfer
, dataTransfer
, dtTotalObjects
, dtTotalBytes
, dtObjectsTransferred
, dtBytesTransferred
, JobListEntry
, jobListEntry
, jleJobId
, jleJobState
, jleIsMaster
, JobLogs
, jobLogs
, jlJobFailureLogURI
, jlJobCompletionReportURI
, jlJobSuccessLogURI
, JobMetadata
, jobMetadata
, jmJobType
, jmKMSKeyARN
, jmJobId
, jmJobLogInfo
, jmNotification
, jmJobState
, jmShippingDetails
, jmAddressId
, jmDataTransferProgress
, jmResources
, jmCreationDate
, jmDescription
, jmRoleARN
, jmSnowballCapacityPreference
, JobResource
, jobResource
, jrS3Resources
, KeyRange
, keyRange
, krEndMarker
, krBeginMarker
, Notification
, notification
, nNotifyAll
, nSNSTopicARN
, nJobStatesToNotify
, S3Resource
, s3Resource
, srKeyRange
, srBucketARN
, Shipment
, shipment
, sStatus
, sTrackingNumber
, ShippingDetails
, shippingDetails
, sdShippingOption
, sdOutboundShipment
, sdInboundShipment
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Sign.V4
import Network.AWS.Snowball.Types.Product
import Network.AWS.Snowball.Types.Sum
snowball :: Service
snowball =
Service
{ _svcAbbrev = "Snowball"
, _svcSigner = v4
, _svcPrefix = "snowball"
, _svcVersion = "2016-06-30"
, _svcEndpoint = defaultEndpoint snowball
, _svcTimeout = Just 70
, _svcCheck = statusSuccess
, _svcError = parseJSONError "Snowball"
, _svcRetry = retry
}
where
retry =
Exponential
{ _retryBase = 5.0e-2
, _retryGrowth = 2
, _retryAttempts = 5
, _retryCheck = check
}
check e
| 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 (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
_InvalidResourceException :: AsError a => Getting (First ServiceError) a ServiceError
_InvalidResourceException = _ServiceError . hasCode "InvalidResourceException"
_UnsupportedAddressException :: AsError a => Getting (First ServiceError) a ServiceError
_UnsupportedAddressException =
_ServiceError . hasCode "UnsupportedAddressException"
_KMSRequestFailedException :: AsError a => Getting (First ServiceError) a ServiceError
_KMSRequestFailedException =
_ServiceError . hasCode "KMSRequestFailedException"
_InvalidJobStateException :: AsError a => Getting (First ServiceError) a ServiceError
_InvalidJobStateException = _ServiceError . hasCode "InvalidJobStateException"
_InvalidAddressException :: AsError a => Getting (First ServiceError) a ServiceError
_InvalidAddressException = _ServiceError . hasCode "InvalidAddressException"