module Network.AWS.CloudFormation.Types
(
cloudFormation
, _InsufficientCapabilitiesException
, _AlreadyExistsException
, _LimitExceededException
, Capability (..)
, OnFailure (..)
, ResourceSignalStatus (..)
, ResourceStatus (..)
, StackStatus (..)
, AccountLimit
, accountLimit
, alValue
, alName
, Output
, output
, oOutputValue
, oOutputKey
, oDescription
, Parameter
, parameter
, pParameterValue
, pParameterKey
, pUsePreviousValue
, ParameterConstraints
, parameterConstraints
, pcAllowedValues
, ParameterDeclaration
, parameterDeclaration
, pdParameterKey
, pdParameterType
, pdParameterConstraints
, pdDefaultValue
, pdNoEcho
, pdDescription
, Stack
, stack
, sDisableRollback
, sLastUpdatedTime
, sNotificationARNs
, sStackStatusReason
, sOutputs
, sParameters
, sStackId
, sDescription
, sCapabilities
, sTags
, sTimeoutInMinutes
, sStackName
, sCreationTime
, sStackStatus
, StackEvent
, stackEvent
, seLogicalResourceId
, sePhysicalResourceId
, seResourceType
, seResourceStatusReason
, seResourceProperties
, seResourceStatus
, seStackId
, seEventId
, seStackName
, seTimestamp
, StackResource
, stackResource
, srPhysicalResourceId
, srResourceStatusReason
, srStackId
, srDescription
, srStackName
, srLogicalResourceId
, srResourceType
, srTimestamp
, srResourceStatus
, StackResourceDetail
, stackResourceDetail
, srdPhysicalResourceId
, srdResourceStatusReason
, srdMetadata
, srdStackId
, srdDescription
, srdStackName
, srdLogicalResourceId
, srdResourceType
, srdLastUpdatedTimestamp
, srdResourceStatus
, StackResourceSummary
, stackResourceSummary
, srsPhysicalResourceId
, srsResourceStatusReason
, srsLogicalResourceId
, srsResourceType
, srsLastUpdatedTimestamp
, srsResourceStatus
, StackSummary
, stackSummary
, ssLastUpdatedTime
, ssStackStatusReason
, ssTemplateDescription
, ssDeletionTime
, ssStackId
, ssStackName
, ssCreationTime
, ssStackStatus
, Tag
, tag
, tagValue
, tagKey
, TemplateParameter
, templateParameter
, tpParameterKey
, tpDefaultValue
, tpNoEcho
, tpDescription
) where
import Network.AWS.CloudFormation.Types.Product
import Network.AWS.CloudFormation.Types.Sum
import Network.AWS.Prelude
import Network.AWS.Sign.V4
cloudFormation :: Service
cloudFormation =
Service
{ _svcAbbrev = "CloudFormation"
, _svcSigner = v4
, _svcPrefix = "cloudformation"
, _svcVersion = "2010-05-15"
, _svcEndpoint = defaultEndpoint cloudFormation
, _svcTimeout = Just 70
, _svcCheck = statusSuccess
, _svcError = parseXMLError
, _svcRetry = retry
}
where
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
_InsufficientCapabilitiesException :: AsError a => Getting (First ServiceError) a ServiceError
_InsufficientCapabilitiesException =
_ServiceError . hasStatus 400 . hasCode "InsufficientCapabilitiesException"
_AlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError
_AlreadyExistsException =
_ServiceError . hasStatus 400 . hasCode "AlreadyExistsException"
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
_LimitExceededException =
_ServiceError . hasStatus 400 . hasCode "LimitExceededException"