{-# 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.Shield.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.Shield.Types ( -- * Service Configuration defaultService, -- * Errors _AccessDeniedException, _AccessDeniedForDependencyException, _InternalErrorException, _InvalidOperationException, _InvalidPaginationTokenException, _InvalidParameterException, _InvalidResourceException, _LimitsExceededException, _LockedSubscriptionException, _NoAssociatedRoleException, _OptimisticLockException, _ResourceAlreadyExistsException, _ResourceNotFoundException, -- * ApplicationLayerAutomaticResponseStatus ApplicationLayerAutomaticResponseStatus (..), -- * AttackLayer AttackLayer (..), -- * AttackPropertyIdentifier AttackPropertyIdentifier (..), -- * AutoRenew AutoRenew (..), -- * ProactiveEngagementStatus ProactiveEngagementStatus (..), -- * ProtectedResourceType ProtectedResourceType (..), -- * ProtectionGroupAggregation ProtectionGroupAggregation (..), -- * ProtectionGroupPattern ProtectionGroupPattern (..), -- * SubResourceType SubResourceType (..), -- * SubscriptionState SubscriptionState (..), -- * Unit Unit (..), -- * ApplicationLayerAutomaticResponseConfiguration ApplicationLayerAutomaticResponseConfiguration (..), newApplicationLayerAutomaticResponseConfiguration, applicationLayerAutomaticResponseConfiguration_status, applicationLayerAutomaticResponseConfiguration_action, -- * AttackDetail AttackDetail (..), newAttackDetail, attackDetail_attackCounters, attackDetail_attackId, attackDetail_attackProperties, attackDetail_endTime, attackDetail_mitigations, attackDetail_resourceArn, attackDetail_startTime, attackDetail_subResources, -- * AttackProperty AttackProperty (..), newAttackProperty, attackProperty_attackLayer, attackProperty_attackPropertyIdentifier, attackProperty_topContributors, attackProperty_total, attackProperty_unit, -- * AttackStatisticsDataItem AttackStatisticsDataItem (..), newAttackStatisticsDataItem, attackStatisticsDataItem_attackVolume, attackStatisticsDataItem_attackCount, -- * AttackSummary AttackSummary (..), newAttackSummary, attackSummary_attackId, attackSummary_attackVectors, attackSummary_endTime, attackSummary_resourceArn, attackSummary_startTime, -- * AttackVectorDescription AttackVectorDescription (..), newAttackVectorDescription, attackVectorDescription_vectorType, -- * AttackVolume AttackVolume (..), newAttackVolume, attackVolume_bitsPerSecond, attackVolume_packetsPerSecond, attackVolume_requestsPerSecond, -- * AttackVolumeStatistics AttackVolumeStatistics (..), newAttackVolumeStatistics, attackVolumeStatistics_max, -- * BlockAction BlockAction (..), newBlockAction, -- * Contributor Contributor (..), newContributor, contributor_name, contributor_value, -- * CountAction CountAction (..), newCountAction, -- * EmergencyContact EmergencyContact (..), newEmergencyContact, emergencyContact_contactNotes, emergencyContact_phoneNumber, emergencyContact_emailAddress, -- * InclusionProtectionFilters InclusionProtectionFilters (..), newInclusionProtectionFilters, inclusionProtectionFilters_protectionNames, inclusionProtectionFilters_resourceArns, inclusionProtectionFilters_resourceTypes, -- * InclusionProtectionGroupFilters InclusionProtectionGroupFilters (..), newInclusionProtectionGroupFilters, inclusionProtectionGroupFilters_aggregations, inclusionProtectionGroupFilters_patterns, inclusionProtectionGroupFilters_protectionGroupIds, inclusionProtectionGroupFilters_resourceTypes, -- * Limit Limit (..), newLimit, limit_max, limit_type, -- * Mitigation Mitigation (..), newMitigation, mitigation_mitigationName, -- * Protection Protection (..), newProtection, protection_applicationLayerAutomaticResponseConfiguration, protection_healthCheckIds, protection_id, protection_name, protection_protectionArn, protection_resourceArn, -- * ProtectionGroup ProtectionGroup (..), newProtectionGroup, protectionGroup_protectionGroupArn, protectionGroup_resourceType, protectionGroup_protectionGroupId, protectionGroup_aggregation, protectionGroup_pattern, protectionGroup_members, -- * ProtectionGroupArbitraryPatternLimits ProtectionGroupArbitraryPatternLimits (..), newProtectionGroupArbitraryPatternLimits, protectionGroupArbitraryPatternLimits_maxMembers, -- * ProtectionGroupLimits ProtectionGroupLimits (..), newProtectionGroupLimits, protectionGroupLimits_maxProtectionGroups, protectionGroupLimits_patternTypeLimits, -- * ProtectionGroupPatternTypeLimits ProtectionGroupPatternTypeLimits (..), newProtectionGroupPatternTypeLimits, protectionGroupPatternTypeLimits_arbitraryPatternLimits, -- * ProtectionLimits ProtectionLimits (..), newProtectionLimits, protectionLimits_protectedResourceTypeLimits, -- * ResponseAction ResponseAction (..), newResponseAction, responseAction_block, responseAction_count, -- * SubResourceSummary SubResourceSummary (..), newSubResourceSummary, subResourceSummary_attackVectors, subResourceSummary_counters, subResourceSummary_id, subResourceSummary_type, -- * Subscription Subscription (..), newSubscription, subscription_autoRenew, subscription_endTime, subscription_limits, subscription_proactiveEngagementStatus, subscription_startTime, subscription_subscriptionArn, subscription_timeCommitmentInSeconds, subscription_subscriptionLimits, -- * SubscriptionLimits SubscriptionLimits (..), newSubscriptionLimits, subscriptionLimits_protectionLimits, subscriptionLimits_protectionGroupLimits, -- * SummarizedAttackVector SummarizedAttackVector (..), newSummarizedAttackVector, summarizedAttackVector_vectorCounters, summarizedAttackVector_vectorType, -- * SummarizedCounter SummarizedCounter (..), newSummarizedCounter, summarizedCounter_average, summarizedCounter_max, summarizedCounter_n, summarizedCounter_name, summarizedCounter_sum, summarizedCounter_unit, -- * Tag Tag (..), newTag, tag_key, tag_value, -- * TimeRange TimeRange (..), newTimeRange, timeRange_fromInclusive, timeRange_toExclusive, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Prelude as Prelude import Amazonka.Shield.Types.ApplicationLayerAutomaticResponseConfiguration import Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus import Amazonka.Shield.Types.AttackDetail import Amazonka.Shield.Types.AttackLayer import Amazonka.Shield.Types.AttackProperty import Amazonka.Shield.Types.AttackPropertyIdentifier import Amazonka.Shield.Types.AttackStatisticsDataItem import Amazonka.Shield.Types.AttackSummary import Amazonka.Shield.Types.AttackVectorDescription import Amazonka.Shield.Types.AttackVolume import Amazonka.Shield.Types.AttackVolumeStatistics import Amazonka.Shield.Types.AutoRenew import Amazonka.Shield.Types.BlockAction import Amazonka.Shield.Types.Contributor import Amazonka.Shield.Types.CountAction import Amazonka.Shield.Types.EmergencyContact import Amazonka.Shield.Types.InclusionProtectionFilters import Amazonka.Shield.Types.InclusionProtectionGroupFilters import Amazonka.Shield.Types.Limit import Amazonka.Shield.Types.Mitigation import Amazonka.Shield.Types.ProactiveEngagementStatus import Amazonka.Shield.Types.ProtectedResourceType import Amazonka.Shield.Types.Protection import Amazonka.Shield.Types.ProtectionGroup import Amazonka.Shield.Types.ProtectionGroupAggregation import Amazonka.Shield.Types.ProtectionGroupArbitraryPatternLimits import Amazonka.Shield.Types.ProtectionGroupLimits import Amazonka.Shield.Types.ProtectionGroupPattern import Amazonka.Shield.Types.ProtectionGroupPatternTypeLimits import Amazonka.Shield.Types.ProtectionLimits import Amazonka.Shield.Types.ResponseAction import Amazonka.Shield.Types.SubResourceSummary import Amazonka.Shield.Types.SubResourceType import Amazonka.Shield.Types.Subscription import Amazonka.Shield.Types.SubscriptionLimits import Amazonka.Shield.Types.SubscriptionState import Amazonka.Shield.Types.SummarizedAttackVector import Amazonka.Shield.Types.SummarizedCounter import Amazonka.Shield.Types.Tag import Amazonka.Shield.Types.TimeRange import Amazonka.Shield.Types.Unit import qualified Amazonka.Sign.V4 as Sign -- | API version @2016-06-02@ of the Amazon Shield SDK configuration. defaultService :: Core.Service defaultService = Core.Service { Core.abbrev = "Shield", Core.signer = Sign.v4, Core.endpointPrefix = "shield", Core.signingName = "shield", Core.version = "2016-06-02", Core.s3AddressingStyle = Core.S3AddressingStyleAuto, Core.endpoint = Core.defaultEndpoint defaultService, Core.timeout = Prelude.Just 70, Core.check = Core.statusSuccess, Core.error = Core.parseJSONError "Shield", 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 -- | Exception that indicates the specified @AttackId@ does not exist, or the -- requester does not have the appropriate permissions to access the -- @AttackId@. _AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _AccessDeniedException = Core._MatchServiceError defaultService "AccessDeniedException" -- | In order to grant the necessary access to the Shield Response Team (SRT) -- the user submitting the request must have the @iam:PassRole@ permission. -- This error indicates the user did not have the appropriate permissions. -- For more information, see -- . _AccessDeniedForDependencyException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _AccessDeniedForDependencyException = Core._MatchServiceError defaultService "AccessDeniedForDependencyException" -- | Exception that indicates that a problem occurred with the service -- infrastructure. You can retry the request. _InternalErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _InternalErrorException = Core._MatchServiceError defaultService "InternalErrorException" -- | Exception that indicates that the operation would not cause any change -- to occur. _InvalidOperationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _InvalidOperationException = Core._MatchServiceError defaultService "InvalidOperationException" -- | Exception that indicates that the @NextToken@ specified in the request -- is invalid. Submit the request using the @NextToken@ value that was -- returned in the prior response. _InvalidPaginationTokenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _InvalidPaginationTokenException = Core._MatchServiceError defaultService "InvalidPaginationTokenException" -- | Exception that indicates that the parameters passed to the API are -- invalid. If available, this exception includes details in additional -- properties. _InvalidParameterException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _InvalidParameterException = Core._MatchServiceError defaultService "InvalidParameterException" -- | Exception that indicates that the resource is invalid. You might not -- have access to the resource, or the resource might not exist. _InvalidResourceException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _InvalidResourceException = Core._MatchServiceError defaultService "InvalidResourceException" -- | Exception that indicates that the operation would exceed a limit. _LimitsExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _LimitsExceededException = Core._MatchServiceError defaultService "LimitsExceededException" -- | You are trying to update a subscription that has not yet completed the -- 1-year commitment. You can change the @AutoRenew@ parameter during the -- last 30 days of your subscription. This exception indicates that you are -- attempting to change @AutoRenew@ prior to that period. _LockedSubscriptionException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _LockedSubscriptionException = Core._MatchServiceError defaultService "LockedSubscriptionException" -- | The ARN of the role that you specified does not exist. _NoAssociatedRoleException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _NoAssociatedRoleException = Core._MatchServiceError defaultService "NoAssociatedRoleException" -- | Exception that indicates that the resource state has been modified by -- another client. Retrieve the resource and then retry your request. _OptimisticLockException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _OptimisticLockException = Core._MatchServiceError defaultService "OptimisticLockException" -- | Exception indicating the specified resource already exists. If -- available, this exception includes details in additional properties. _ResourceAlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _ResourceAlreadyExistsException = Core._MatchServiceError defaultService "ResourceAlreadyExistsException" -- | Exception indicating the specified resource does not exist. If -- available, this exception includes details in additional properties. _ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _ResourceNotFoundException = Core._MatchServiceError defaultService "ResourceNotFoundException"