{-# LANGUAGE DisambiguateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.ResilienceHub.Types
(
defaultService,
_AccessDeniedException,
_ConflictException,
_InternalServerException,
_ResourceNotFoundException,
_ServiceQuotaExceededException,
_ThrottlingException,
_ValidationException,
AlarmType (..),
AppAssessmentScheduleType (..),
AppComplianceStatusType (..),
AppStatusType (..),
AssessmentInvoker (..),
AssessmentStatus (..),
ComplianceStatus (..),
ConfigRecommendationOptimizationType (..),
CostFrequency (..),
DataLocationConstraint (..),
DisruptionType (..),
EstimatedCostTier (..),
HaArchitecture (..),
PhysicalIdentifierType (..),
RecommendationComplianceStatus (..),
RecommendationTemplateStatus (..),
RenderRecommendationType (..),
ResiliencyPolicyTier (..),
ResourceImportStatusType (..),
ResourceMappingType (..),
ResourceResolutionStatusType (..),
SopServiceType (..),
TemplateFormat (..),
TestRisk (..),
TestType (..),
AlarmRecommendation (..),
newAlarmRecommendation,
alarmRecommendation_appComponentName,
alarmRecommendation_description,
alarmRecommendation_items,
alarmRecommendation_prerequisite,
alarmRecommendation_name,
alarmRecommendation_recommendationId,
alarmRecommendation_referenceId,
alarmRecommendation_type,
App (..),
newApp,
app_assessmentSchedule,
app_complianceStatus,
app_description,
app_lastAppComplianceEvaluationTime,
app_lastResiliencyScoreEvaluationTime,
app_policyArn,
app_resiliencyScore,
app_status,
app_tags,
app_appArn,
app_creationTime,
app_name,
AppAssessment (..),
newAppAssessment,
appAssessment_appArn,
appAssessment_appVersion,
appAssessment_assessmentName,
appAssessment_compliance,
appAssessment_complianceStatus,
appAssessment_cost,
appAssessment_endTime,
appAssessment_message,
appAssessment_policy,
appAssessment_resiliencyScore,
appAssessment_resourceErrorsDetails,
appAssessment_startTime,
appAssessment_tags,
appAssessment_assessmentArn,
appAssessment_assessmentStatus,
appAssessment_invoker,
AppAssessmentSummary (..),
newAppAssessmentSummary,
appAssessmentSummary_appArn,
appAssessmentSummary_appVersion,
appAssessmentSummary_assessmentName,
appAssessmentSummary_complianceStatus,
appAssessmentSummary_cost,
appAssessmentSummary_endTime,
appAssessmentSummary_invoker,
appAssessmentSummary_message,
appAssessmentSummary_resiliencyScore,
appAssessmentSummary_startTime,
appAssessmentSummary_assessmentArn,
appAssessmentSummary_assessmentStatus,
AppComponent (..),
newAppComponent,
appComponent_name,
appComponent_type,
AppComponentCompliance (..),
newAppComponentCompliance,
appComponentCompliance_appComponentName,
appComponentCompliance_compliance,
appComponentCompliance_cost,
appComponentCompliance_message,
appComponentCompliance_resiliencyScore,
appComponentCompliance_status,
AppSummary (..),
newAppSummary,
appSummary_assessmentSchedule,
appSummary_complianceStatus,
appSummary_description,
appSummary_resiliencyScore,
appSummary_status,
appSummary_appArn,
appSummary_creationTime,
appSummary_name,
AppVersionSummary (..),
newAppVersionSummary,
appVersionSummary_appVersion,
ComponentRecommendation (..),
newComponentRecommendation,
componentRecommendation_appComponentName,
componentRecommendation_configRecommendations,
componentRecommendation_recommendationStatus,
ConfigRecommendation (..),
newConfigRecommendation,
configRecommendation_appComponentName,
configRecommendation_compliance,
configRecommendation_cost,
configRecommendation_description,
configRecommendation_haArchitecture,
configRecommendation_recommendationCompliance,
configRecommendation_suggestedChanges,
configRecommendation_name,
configRecommendation_optimizationType,
configRecommendation_referenceId,
Cost (..),
newCost,
cost_amount,
cost_currency,
cost_frequency,
DisruptionCompliance (..),
newDisruptionCompliance,
disruptionCompliance_achievableRpoInSecs,
disruptionCompliance_achievableRtoInSecs,
disruptionCompliance_currentRpoInSecs,
disruptionCompliance_currentRtoInSecs,
disruptionCompliance_message,
disruptionCompliance_rpoDescription,
disruptionCompliance_rpoReferenceId,
disruptionCompliance_rtoDescription,
disruptionCompliance_rtoReferenceId,
disruptionCompliance_complianceStatus,
FailurePolicy (..),
newFailurePolicy,
failurePolicy_rpoInSecs,
failurePolicy_rtoInSecs,
LogicalResourceId (..),
newLogicalResourceId,
logicalResourceId_logicalStackName,
logicalResourceId_resourceGroupName,
logicalResourceId_terraformSourceName,
logicalResourceId_identifier,
PhysicalResource (..),
newPhysicalResource,
physicalResource_appComponents,
physicalResource_resourceName,
physicalResource_logicalResourceId,
physicalResource_physicalResourceId,
physicalResource_resourceType,
PhysicalResourceId (..),
newPhysicalResourceId,
physicalResourceId_awsAccountId,
physicalResourceId_awsRegion,
physicalResourceId_identifier,
physicalResourceId_type,
RecommendationDisruptionCompliance (..),
newRecommendationDisruptionCompliance,
recommendationDisruptionCompliance_expectedRpoDescription,
recommendationDisruptionCompliance_expectedRpoInSecs,
recommendationDisruptionCompliance_expectedRtoDescription,
recommendationDisruptionCompliance_expectedRtoInSecs,
recommendationDisruptionCompliance_expectedComplianceStatus,
RecommendationItem (..),
newRecommendationItem,
recommendationItem_alreadyImplemented,
recommendationItem_resourceId,
recommendationItem_targetAccountId,
recommendationItem_targetRegion,
RecommendationTemplate (..),
newRecommendationTemplate,
recommendationTemplate_appArn,
recommendationTemplate_endTime,
recommendationTemplate_message,
recommendationTemplate_needsReplacements,
recommendationTemplate_recommendationIds,
recommendationTemplate_startTime,
recommendationTemplate_tags,
recommendationTemplate_templatesLocation,
recommendationTemplate_assessmentArn,
recommendationTemplate_format,
recommendationTemplate_name,
recommendationTemplate_recommendationTemplateArn,
recommendationTemplate_recommendationTypes,
recommendationTemplate_status,
ResiliencyPolicy (..),
newResiliencyPolicy,
resiliencyPolicy_creationTime,
resiliencyPolicy_dataLocationConstraint,
resiliencyPolicy_estimatedCostTier,
resiliencyPolicy_policy,
resiliencyPolicy_policyArn,
resiliencyPolicy_policyDescription,
resiliencyPolicy_policyName,
resiliencyPolicy_tags,
resiliencyPolicy_tier,
ResiliencyScore (..),
newResiliencyScore,
resiliencyScore_disruptionScore,
resiliencyScore_score,
ResourceError (..),
newResourceError,
resourceError_logicalResourceId,
resourceError_physicalResourceId,
resourceError_reason,
ResourceErrorsDetails (..),
newResourceErrorsDetails,
resourceErrorsDetails_hasMoreErrors,
resourceErrorsDetails_resourceErrors,
ResourceMapping (..),
newResourceMapping,
resourceMapping_appRegistryAppName,
resourceMapping_logicalStackName,
resourceMapping_resourceGroupName,
resourceMapping_resourceName,
resourceMapping_terraformSourceName,
resourceMapping_mappingType,
resourceMapping_physicalResourceId,
S3Location (..),
newS3Location,
s3Location_bucket,
s3Location_prefix,
SopRecommendation (..),
newSopRecommendation,
sopRecommendation_appComponentName,
sopRecommendation_description,
sopRecommendation_items,
sopRecommendation_name,
sopRecommendation_prerequisite,
sopRecommendation_recommendationId,
sopRecommendation_referenceId,
sopRecommendation_serviceType,
TerraformSource (..),
newTerraformSource,
terraformSource_s3StateFileUrl,
TestRecommendation (..),
newTestRecommendation,
testRecommendation_appComponentName,
testRecommendation_dependsOnAlarms,
testRecommendation_description,
testRecommendation_intent,
testRecommendation_items,
testRecommendation_name,
testRecommendation_prerequisite,
testRecommendation_recommendationId,
testRecommendation_risk,
testRecommendation_type,
testRecommendation_referenceId,
UnsupportedResource (..),
newUnsupportedResource,
unsupportedResource_logicalResourceId,
unsupportedResource_physicalResourceId,
unsupportedResource_resourceType,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.ResilienceHub.Types.AlarmRecommendation
import Amazonka.ResilienceHub.Types.AlarmType
import Amazonka.ResilienceHub.Types.App
import Amazonka.ResilienceHub.Types.AppAssessment
import Amazonka.ResilienceHub.Types.AppAssessmentScheduleType
import Amazonka.ResilienceHub.Types.AppAssessmentSummary
import Amazonka.ResilienceHub.Types.AppComplianceStatusType
import Amazonka.ResilienceHub.Types.AppComponent
import Amazonka.ResilienceHub.Types.AppComponentCompliance
import Amazonka.ResilienceHub.Types.AppStatusType
import Amazonka.ResilienceHub.Types.AppSummary
import Amazonka.ResilienceHub.Types.AppVersionSummary
import Amazonka.ResilienceHub.Types.AssessmentInvoker
import Amazonka.ResilienceHub.Types.AssessmentStatus
import Amazonka.ResilienceHub.Types.ComplianceStatus
import Amazonka.ResilienceHub.Types.ComponentRecommendation
import Amazonka.ResilienceHub.Types.ConfigRecommendation
import Amazonka.ResilienceHub.Types.ConfigRecommendationOptimizationType
import Amazonka.ResilienceHub.Types.Cost
import Amazonka.ResilienceHub.Types.CostFrequency
import Amazonka.ResilienceHub.Types.DataLocationConstraint
import Amazonka.ResilienceHub.Types.DisruptionCompliance
import Amazonka.ResilienceHub.Types.DisruptionType
import Amazonka.ResilienceHub.Types.EstimatedCostTier
import Amazonka.ResilienceHub.Types.FailurePolicy
import Amazonka.ResilienceHub.Types.HaArchitecture
import Amazonka.ResilienceHub.Types.LogicalResourceId
import Amazonka.ResilienceHub.Types.PhysicalIdentifierType
import Amazonka.ResilienceHub.Types.PhysicalResource
import Amazonka.ResilienceHub.Types.PhysicalResourceId
import Amazonka.ResilienceHub.Types.RecommendationComplianceStatus
import Amazonka.ResilienceHub.Types.RecommendationDisruptionCompliance
import Amazonka.ResilienceHub.Types.RecommendationItem
import Amazonka.ResilienceHub.Types.RecommendationTemplate
import Amazonka.ResilienceHub.Types.RecommendationTemplateStatus
import Amazonka.ResilienceHub.Types.RenderRecommendationType
import Amazonka.ResilienceHub.Types.ResiliencyPolicy
import Amazonka.ResilienceHub.Types.ResiliencyPolicyTier
import Amazonka.ResilienceHub.Types.ResiliencyScore
import Amazonka.ResilienceHub.Types.ResourceError
import Amazonka.ResilienceHub.Types.ResourceErrorsDetails
import Amazonka.ResilienceHub.Types.ResourceImportStatusType
import Amazonka.ResilienceHub.Types.ResourceMapping
import Amazonka.ResilienceHub.Types.ResourceMappingType
import Amazonka.ResilienceHub.Types.ResourceResolutionStatusType
import Amazonka.ResilienceHub.Types.S3Location
import Amazonka.ResilienceHub.Types.SopRecommendation
import Amazonka.ResilienceHub.Types.SopServiceType
import Amazonka.ResilienceHub.Types.TemplateFormat
import Amazonka.ResilienceHub.Types.TerraformSource
import Amazonka.ResilienceHub.Types.TestRecommendation
import Amazonka.ResilienceHub.Types.TestRisk
import Amazonka.ResilienceHub.Types.TestType
import Amazonka.ResilienceHub.Types.UnsupportedResource
import qualified Amazonka.Sign.V4 as Sign
defaultService :: Core.Service
defaultService :: Service
defaultService =
Core.Service
{ $sel:abbrev:Service :: Abbrev
Core.abbrev = Abbrev
"ResilienceHub",
$sel:signer:Service :: Signer
Core.signer = Signer
Sign.v4,
$sel:endpointPrefix:Service :: ByteString
Core.endpointPrefix = ByteString
"resiliencehub",
$sel:signingName:Service :: ByteString
Core.signingName = ByteString
"resiliencehub",
$sel:version:Service :: ByteString
Core.version = ByteString
"2020-04-30",
$sel:s3AddressingStyle:Service :: S3AddressingStyle
Core.s3AddressingStyle = S3AddressingStyle
Core.S3AddressingStyleAuto,
$sel:endpoint:Service :: Region -> Endpoint
Core.endpoint = Service -> Region -> Endpoint
Core.defaultEndpoint Service
defaultService,
$sel:timeout:Service :: Maybe Seconds
Core.timeout = forall a. a -> Maybe a
Prelude.Just Seconds
70,
$sel:check:Service :: Status -> Bool
Core.check = Status -> Bool
Core.statusSuccess,
$sel:error:Service :: Status -> [Header] -> ByteStringLazy -> Error
Core.error = Abbrev -> Status -> [Header] -> ByteStringLazy -> Error
Core.parseJSONError Abbrev
"ResilienceHub",
$sel:retry:Service :: Retry
Core.retry = Retry
retry
}
where
retry :: Retry
retry =
Core.Exponential
{ $sel:base:Exponential :: Double
Core.base = Double
5.0e-2,
$sel:growth:Exponential :: Int
Core.growth = Int
2,
$sel:attempts:Exponential :: Int
Core.attempts = Int
5,
$sel:check:Exponential :: ServiceError -> Maybe Text
Core.check = forall {a}. IsString a => ServiceError -> Maybe a
check
}
check :: ServiceError -> Maybe a
check ServiceError
e
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
502) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"bad_gateway"
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
504) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"gateway_timeout"
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
500) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"general_server_error"
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
509) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"limit_exceeded"
| forall s a. Getting Any s a -> s -> Bool
Lens.has
( forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"RequestThrottledException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
)
ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"request_throttled_exception"
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
503) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"service_unavailable"
| forall s a. Getting Any s a -> s -> Bool
Lens.has
( forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"ThrottledException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
)
ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"throttled_exception"
| forall s a. Getting Any s a -> s -> Bool
Lens.has
( forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"Throttling"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
)
ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"throttling"
| forall s a. Getting Any s a -> s -> Bool
Lens.has
( forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"ThrottlingException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
)
ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"throttling_exception"
| forall s a. Getting Any s a -> s -> Bool
Lens.has
( forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode
ErrorCode
"ProvisionedThroughputExceededException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
)
ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"throughput_exceeded"
| forall s a. Getting Any s a -> s -> Bool
Lens.has (forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
429) ServiceError
e =
forall a. a -> Maybe a
Prelude.Just a
"too_many_requests"
| Bool
Prelude.otherwise = forall a. Maybe a
Prelude.Nothing
_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_AccessDeniedException :: forall a. AsError a => Fold a ServiceError
_AccessDeniedException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"AccessDeniedException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
403
_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ConflictException :: forall a. AsError a => Fold a ServiceError
_ConflictException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"ConflictException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
409
_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InternalServerException :: forall a. AsError a => Fold a ServiceError
_InternalServerException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"InternalServerException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
500
_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ResourceNotFoundException :: forall a. AsError a => Fold a ServiceError
_ResourceNotFoundException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"ResourceNotFoundException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
404
_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ServiceQuotaExceededException :: forall a. AsError a => Fold a ServiceError
_ServiceQuotaExceededException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"ServiceQuotaExceededException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
402
_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ThrottlingException :: forall a. AsError a => Fold a ServiceError
_ThrottlingException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"ThrottlingException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
429
_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ValidationException :: forall a. AsError a => Fold a ServiceError
_ValidationException =
forall a. AsError a => Service -> ErrorCode -> Fold a ServiceError
Core._MatchServiceError
Service
defaultService
ErrorCode
"ValidationException"
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400