{-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.ResilienceHub.Types -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.ResilienceHub.Types ( -- * Service Configuration defaultService, -- * Errors _AccessDeniedException, _ConflictException, _InternalServerException, _ResourceNotFoundException, _ServiceQuotaExceededException, _ThrottlingException, _ValidationException, -- * AlarmType AlarmType (..), -- * AppAssessmentScheduleType AppAssessmentScheduleType (..), -- * AppComplianceStatusType AppComplianceStatusType (..), -- * AppStatusType AppStatusType (..), -- * AssessmentInvoker AssessmentInvoker (..), -- * AssessmentStatus AssessmentStatus (..), -- * ComplianceStatus ComplianceStatus (..), -- * ConfigRecommendationOptimizationType ConfigRecommendationOptimizationType (..), -- * CostFrequency CostFrequency (..), -- * DataLocationConstraint DataLocationConstraint (..), -- * DisruptionType DisruptionType (..), -- * EstimatedCostTier EstimatedCostTier (..), -- * HaArchitecture HaArchitecture (..), -- * PhysicalIdentifierType PhysicalIdentifierType (..), -- * RecommendationComplianceStatus RecommendationComplianceStatus (..), -- * RecommendationTemplateStatus RecommendationTemplateStatus (..), -- * RenderRecommendationType RenderRecommendationType (..), -- * ResiliencyPolicyTier ResiliencyPolicyTier (..), -- * ResourceImportStatusType ResourceImportStatusType (..), -- * ResourceMappingType ResourceMappingType (..), -- * ResourceResolutionStatusType ResourceResolutionStatusType (..), -- * SopServiceType SopServiceType (..), -- * TemplateFormat TemplateFormat (..), -- * TestRisk TestRisk (..), -- * TestType TestType (..), -- * AlarmRecommendation AlarmRecommendation (..), newAlarmRecommendation, alarmRecommendation_appComponentName, alarmRecommendation_description, alarmRecommendation_items, alarmRecommendation_prerequisite, alarmRecommendation_name, alarmRecommendation_recommendationId, alarmRecommendation_referenceId, alarmRecommendation_type, -- * App 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 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 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 AppComponent (..), newAppComponent, appComponent_name, appComponent_type, -- * AppComponentCompliance AppComponentCompliance (..), newAppComponentCompliance, appComponentCompliance_appComponentName, appComponentCompliance_compliance, appComponentCompliance_cost, appComponentCompliance_message, appComponentCompliance_resiliencyScore, appComponentCompliance_status, -- * AppSummary AppSummary (..), newAppSummary, appSummary_assessmentSchedule, appSummary_complianceStatus, appSummary_description, appSummary_resiliencyScore, appSummary_status, appSummary_appArn, appSummary_creationTime, appSummary_name, -- * AppVersionSummary AppVersionSummary (..), newAppVersionSummary, appVersionSummary_appVersion, -- * ComponentRecommendation ComponentRecommendation (..), newComponentRecommendation, componentRecommendation_appComponentName, componentRecommendation_configRecommendations, componentRecommendation_recommendationStatus, -- * ConfigRecommendation ConfigRecommendation (..), newConfigRecommendation, configRecommendation_appComponentName, configRecommendation_compliance, configRecommendation_cost, configRecommendation_description, configRecommendation_haArchitecture, configRecommendation_recommendationCompliance, configRecommendation_suggestedChanges, configRecommendation_name, configRecommendation_optimizationType, configRecommendation_referenceId, -- * Cost Cost (..), newCost, cost_amount, cost_currency, cost_frequency, -- * DisruptionCompliance DisruptionCompliance (..), newDisruptionCompliance, disruptionCompliance_achievableRpoInSecs, disruptionCompliance_achievableRtoInSecs, disruptionCompliance_currentRpoInSecs, disruptionCompliance_currentRtoInSecs, disruptionCompliance_message, disruptionCompliance_rpoDescription, disruptionCompliance_rpoReferenceId, disruptionCompliance_rtoDescription, disruptionCompliance_rtoReferenceId, disruptionCompliance_complianceStatus, -- * FailurePolicy FailurePolicy (..), newFailurePolicy, failurePolicy_rpoInSecs, failurePolicy_rtoInSecs, -- * LogicalResourceId LogicalResourceId (..), newLogicalResourceId, logicalResourceId_logicalStackName, logicalResourceId_resourceGroupName, logicalResourceId_terraformSourceName, logicalResourceId_identifier, -- * PhysicalResource PhysicalResource (..), newPhysicalResource, physicalResource_appComponents, physicalResource_resourceName, physicalResource_logicalResourceId, physicalResource_physicalResourceId, physicalResource_resourceType, -- * PhysicalResourceId PhysicalResourceId (..), newPhysicalResourceId, physicalResourceId_awsAccountId, physicalResourceId_awsRegion, physicalResourceId_identifier, physicalResourceId_type, -- * RecommendationDisruptionCompliance RecommendationDisruptionCompliance (..), newRecommendationDisruptionCompliance, recommendationDisruptionCompliance_expectedRpoDescription, recommendationDisruptionCompliance_expectedRpoInSecs, recommendationDisruptionCompliance_expectedRtoDescription, recommendationDisruptionCompliance_expectedRtoInSecs, recommendationDisruptionCompliance_expectedComplianceStatus, -- * RecommendationItem RecommendationItem (..), newRecommendationItem, recommendationItem_alreadyImplemented, recommendationItem_resourceId, recommendationItem_targetAccountId, recommendationItem_targetRegion, -- * RecommendationTemplate 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 ResiliencyPolicy (..), newResiliencyPolicy, resiliencyPolicy_creationTime, resiliencyPolicy_dataLocationConstraint, resiliencyPolicy_estimatedCostTier, resiliencyPolicy_policy, resiliencyPolicy_policyArn, resiliencyPolicy_policyDescription, resiliencyPolicy_policyName, resiliencyPolicy_tags, resiliencyPolicy_tier, -- * ResiliencyScore ResiliencyScore (..), newResiliencyScore, resiliencyScore_disruptionScore, resiliencyScore_score, -- * ResourceError ResourceError (..), newResourceError, resourceError_logicalResourceId, resourceError_physicalResourceId, resourceError_reason, -- * ResourceErrorsDetails ResourceErrorsDetails (..), newResourceErrorsDetails, resourceErrorsDetails_hasMoreErrors, resourceErrorsDetails_resourceErrors, -- * ResourceMapping ResourceMapping (..), newResourceMapping, resourceMapping_appRegistryAppName, resourceMapping_logicalStackName, resourceMapping_resourceGroupName, resourceMapping_resourceName, resourceMapping_terraformSourceName, resourceMapping_mappingType, resourceMapping_physicalResourceId, -- * S3Location S3Location (..), newS3Location, s3Location_bucket, s3Location_prefix, -- * SopRecommendation SopRecommendation (..), newSopRecommendation, sopRecommendation_appComponentName, sopRecommendation_description, sopRecommendation_items, sopRecommendation_name, sopRecommendation_prerequisite, sopRecommendation_recommendationId, sopRecommendation_referenceId, sopRecommendation_serviceType, -- * TerraformSource TerraformSource (..), newTerraformSource, terraformSource_s3StateFileUrl, -- * TestRecommendation 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 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 -- | API version @2020-04-30@ of the Amazon Resilience Hub SDK configuration. defaultService :: Core.Service defaultService = Core.Service { Core.abbrev = "ResilienceHub", Core.signer = Sign.v4, Core.endpointPrefix = "resiliencehub", Core.signingName = "resiliencehub", Core.version = "2020-04-30", Core.s3AddressingStyle = Core.S3AddressingStyleAuto, Core.endpoint = Core.defaultEndpoint defaultService, Core.timeout = Prelude.Just 70, Core.check = Core.statusSuccess, Core.error = Core.parseJSONError "ResilienceHub", Core.retry = retry } where retry = Core.Exponential { Core.base = 5.0e-2, Core.growth = 2, Core.attempts = 5, Core.check = check } check e | Lens.has (Core.hasStatus 502) e = Prelude.Just "bad_gateway" | Lens.has (Core.hasStatus 504) e = Prelude.Just "gateway_timeout" | Lens.has (Core.hasStatus 500) e = Prelude.Just "general_server_error" | Lens.has (Core.hasStatus 509) e = Prelude.Just "limit_exceeded" | Lens.has ( Core.hasCode "RequestThrottledException" Prelude.. Core.hasStatus 400 ) e = Prelude.Just "request_throttled_exception" | Lens.has (Core.hasStatus 503) e = Prelude.Just "service_unavailable" | Lens.has ( Core.hasCode "ThrottledException" Prelude.. Core.hasStatus 400 ) e = Prelude.Just "throttled_exception" | Lens.has ( Core.hasCode "Throttling" Prelude.. Core.hasStatus 400 ) e = Prelude.Just "throttling" | Lens.has ( Core.hasCode "ThrottlingException" Prelude.. Core.hasStatus 400 ) e = Prelude.Just "throttling_exception" | Lens.has ( Core.hasCode "ProvisionedThroughputExceededException" Prelude.. Core.hasStatus 400 ) e = Prelude.Just "throughput_exceeded" | Lens.has (Core.hasStatus 429) e = Prelude.Just "too_many_requests" | Prelude.otherwise = Prelude.Nothing -- | You don\'t have permissions to perform the requested operation. The user -- or role that is making the request must have at least one IAM -- permissions policy attached that grants the required permissions. _AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _AccessDeniedException = Core._MatchServiceError defaultService "AccessDeniedException" Prelude.. Core.hasStatus 403 -- | Occurs when a conflict with a previous successful write is detected. -- This generally occurs when the previous write did not have time to -- propagate to the host serving the current request. A retry (with -- appropriate backoff logic) is the recommended response to this -- exception. _ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _ConflictException = Core._MatchServiceError defaultService "ConflictException" Prelude.. Core.hasStatus 409 -- | This exception occurs when there is an internal failure in the AWS -- Resilience Hub service. _InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _InternalServerException = Core._MatchServiceError defaultService "InternalServerException" Prelude.. Core.hasStatus 500 -- | The specified resource could not be found. _ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _ResourceNotFoundException = Core._MatchServiceError defaultService "ResourceNotFoundException" Prelude.. Core.hasStatus 404 -- | You have exceeded your service quota. To perform the requested action, -- remove some of the relevant resources, or use Service Quotas to request -- a service quota increase. _ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _ServiceQuotaExceededException = Core._MatchServiceError defaultService "ServiceQuotaExceededException" Prelude.. Core.hasStatus 402 -- | The limit on the number of requests per second was exceeded. _ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _ThrottlingException = Core._MatchServiceError defaultService "ThrottlingException" Prelude.. Core.hasStatus 429 -- | Indicates that a request was not valid. _ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _ValidationException = Core._MatchServiceError defaultService "ValidationException" Prelude.. Core.hasStatus 400