-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Amazon Shield SDK.
--
-- Derived from API version 2016-06-02 of the AWS service
-- descriptions, licensed under Apache 2.0.
--
-- The types from this library are intended to be used with
-- amazonka, which provides mechanisms for specifying AuthN/AuthZ
-- information, sending requests, and receiving responses.
--
-- It is recommended to use generic lenses or optics from packages such
-- as generic-lens or optics to modify optional fields and
-- deconstruct responses.
--
-- Generated lenses can be found in Amazonka.Shield.Lens and are
-- suitable for use with a lens package such as lens or
-- lens-family-core.
--
-- See Amazonka.Shield and the AWS documentation to get
-- started.
@package amazonka-shield
@version 2.0
module Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus
newtype ApplicationLayerAutomaticResponseStatus
ApplicationLayerAutomaticResponseStatus' :: Text -> ApplicationLayerAutomaticResponseStatus
[fromApplicationLayerAutomaticResponseStatus] :: ApplicationLayerAutomaticResponseStatus -> Text
pattern ApplicationLayerAutomaticResponseStatus_DISABLED :: ApplicationLayerAutomaticResponseStatus
pattern ApplicationLayerAutomaticResponseStatus_ENABLED :: ApplicationLayerAutomaticResponseStatus
instance Amazonka.Data.XML.ToXML Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Amazonka.Data.XML.FromXML Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Amazonka.Data.Headers.ToHeader Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Amazonka.Data.Log.ToLog Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Amazonka.Data.ByteString.ToByteString Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Amazonka.Data.Text.ToText Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Amazonka.Data.Text.FromText Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance GHC.Generics.Generic Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance GHC.Classes.Ord Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance GHC.Classes.Eq Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance GHC.Read.Read Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
instance GHC.Show.Show Amazonka.Shield.Types.ApplicationLayerAutomaticResponseStatus.ApplicationLayerAutomaticResponseStatus
module Amazonka.Shield.Types.AttackLayer
newtype AttackLayer
AttackLayer' :: Text -> AttackLayer
[fromAttackLayer] :: AttackLayer -> Text
pattern AttackLayer_APPLICATION :: AttackLayer
pattern AttackLayer_NETWORK :: AttackLayer
instance Amazonka.Data.XML.ToXML Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Amazonka.Data.XML.FromXML Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Amazonka.Data.Headers.ToHeader Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Amazonka.Data.Log.ToLog Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Amazonka.Data.ByteString.ToByteString Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Amazonka.Data.Text.ToText Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Amazonka.Data.Text.FromText Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Control.DeepSeq.NFData Amazonka.Shield.Types.AttackLayer.AttackLayer
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.AttackLayer.AttackLayer
instance GHC.Generics.Generic Amazonka.Shield.Types.AttackLayer.AttackLayer
instance GHC.Classes.Ord Amazonka.Shield.Types.AttackLayer.AttackLayer
instance GHC.Classes.Eq Amazonka.Shield.Types.AttackLayer.AttackLayer
instance GHC.Read.Read Amazonka.Shield.Types.AttackLayer.AttackLayer
instance GHC.Show.Show Amazonka.Shield.Types.AttackLayer.AttackLayer
module Amazonka.Shield.Types.AttackPropertyIdentifier
newtype AttackPropertyIdentifier
AttackPropertyIdentifier' :: Text -> AttackPropertyIdentifier
[fromAttackPropertyIdentifier] :: AttackPropertyIdentifier -> Text
pattern AttackPropertyIdentifier_DESTINATION_URL :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_REFERRER :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_ASN :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_COUNTRY :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_IP_ADDRESS :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_USER_AGENT :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_WORDPRESS_PINGBACK_REFLECTOR :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_WORDPRESS_PINGBACK_SOURCE :: AttackPropertyIdentifier
instance Amazonka.Data.XML.ToXML Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Amazonka.Data.XML.FromXML Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Amazonka.Data.Headers.ToHeader Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Amazonka.Data.Log.ToLog Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Amazonka.Data.ByteString.ToByteString Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Amazonka.Data.Text.ToText Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Amazonka.Data.Text.FromText Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Control.DeepSeq.NFData Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance GHC.Generics.Generic Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance GHC.Classes.Ord Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance GHC.Classes.Eq Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance GHC.Read.Read Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
instance GHC.Show.Show Amazonka.Shield.Types.AttackPropertyIdentifier.AttackPropertyIdentifier
module Amazonka.Shield.Types.AttackVectorDescription
-- | Describes the attack.
--
-- See: newAttackVectorDescription smart constructor.
data AttackVectorDescription
AttackVectorDescription' :: Text -> AttackVectorDescription
-- | The attack type. Valid values:
--
--
-- - UDP_TRAFFIC
-- - UDP_FRAGMENT
-- - GENERIC_UDP_REFLECTION
-- - DNS_REFLECTION
-- - NTP_REFLECTION
-- - CHARGEN_REFLECTION
-- - SSDP_REFLECTION
-- - PORT_MAPPER
-- - RIP_REFLECTION
-- - SNMP_REFLECTION
-- - MSSQL_REFLECTION
-- - NET_BIOS_REFLECTION
-- - SYN_FLOOD
-- - ACK_FLOOD
-- - REQUEST_FLOOD
-- - HTTP_REFLECTION
-- - UDS_REFLECTION
-- - MEMCACHED_REFLECTION
--
[$sel:vectorType:AttackVectorDescription'] :: AttackVectorDescription -> Text
-- | Create a value of AttackVectorDescription with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:vectorType:AttackVectorDescription',
-- attackVectorDescription_vectorType - The attack type. Valid
-- values:
--
--
-- - UDP_TRAFFIC
-- - UDP_FRAGMENT
-- - GENERIC_UDP_REFLECTION
-- - DNS_REFLECTION
-- - NTP_REFLECTION
-- - CHARGEN_REFLECTION
-- - SSDP_REFLECTION
-- - PORT_MAPPER
-- - RIP_REFLECTION
-- - SNMP_REFLECTION
-- - MSSQL_REFLECTION
-- - NET_BIOS_REFLECTION
-- - SYN_FLOOD
-- - ACK_FLOOD
-- - REQUEST_FLOOD
-- - HTTP_REFLECTION
-- - UDS_REFLECTION
-- - MEMCACHED_REFLECTION
--
newAttackVectorDescription :: Text -> AttackVectorDescription
-- | The attack type. Valid values:
--
--
-- - UDP_TRAFFIC
-- - UDP_FRAGMENT
-- - GENERIC_UDP_REFLECTION
-- - DNS_REFLECTION
-- - NTP_REFLECTION
-- - CHARGEN_REFLECTION
-- - SSDP_REFLECTION
-- - PORT_MAPPER
-- - RIP_REFLECTION
-- - SNMP_REFLECTION
-- - MSSQL_REFLECTION
-- - NET_BIOS_REFLECTION
-- - SYN_FLOOD
-- - ACK_FLOOD
-- - REQUEST_FLOOD
-- - HTTP_REFLECTION
-- - UDS_REFLECTION
-- - MEMCACHED_REFLECTION
--
attackVectorDescription_vectorType :: Lens' AttackVectorDescription Text
instance GHC.Generics.Generic Amazonka.Shield.Types.AttackVectorDescription.AttackVectorDescription
instance GHC.Show.Show Amazonka.Shield.Types.AttackVectorDescription.AttackVectorDescription
instance GHC.Read.Read Amazonka.Shield.Types.AttackVectorDescription.AttackVectorDescription
instance GHC.Classes.Eq Amazonka.Shield.Types.AttackVectorDescription.AttackVectorDescription
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.AttackVectorDescription.AttackVectorDescription
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.AttackVectorDescription.AttackVectorDescription
instance Control.DeepSeq.NFData Amazonka.Shield.Types.AttackVectorDescription.AttackVectorDescription
module Amazonka.Shield.Types.AttackSummary
-- | Summarizes all DDoS attacks for a specified time period.
--
-- See: newAttackSummary smart constructor.
data AttackSummary
AttackSummary' :: Maybe Text -> Maybe [AttackVectorDescription] -> Maybe POSIX -> Maybe Text -> Maybe POSIX -> AttackSummary
-- | The unique identifier (ID) of the attack.
[$sel:attackId:AttackSummary'] :: AttackSummary -> Maybe Text
-- | The list of attacks for a specified time period.
[$sel:attackVectors:AttackSummary'] :: AttackSummary -> Maybe [AttackVectorDescription]
-- | The end time of the attack, in Unix time in seconds.
[$sel:endTime:AttackSummary'] :: AttackSummary -> Maybe POSIX
-- | The ARN (Amazon Resource Name) of the resource that was attacked.
[$sel:resourceArn:AttackSummary'] :: AttackSummary -> Maybe Text
-- | The start time of the attack, in Unix time in seconds.
[$sel:startTime:AttackSummary'] :: AttackSummary -> Maybe POSIX
-- | Create a value of AttackSummary with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackId:AttackSummary', attackSummary_attackId -
-- The unique identifier (ID) of the attack.
--
-- $sel:attackVectors:AttackSummary',
-- attackSummary_attackVectors - The list of attacks for a
-- specified time period.
--
-- $sel:endTime:AttackSummary', attackSummary_endTime - The
-- end time of the attack, in Unix time in seconds.
--
-- $sel:resourceArn:AttackSummary',
-- attackSummary_resourceArn - The ARN (Amazon Resource Name) of
-- the resource that was attacked.
--
-- $sel:startTime:AttackSummary', attackSummary_startTime -
-- The start time of the attack, in Unix time in seconds.
newAttackSummary :: AttackSummary
-- | The unique identifier (ID) of the attack.
attackSummary_attackId :: Lens' AttackSummary (Maybe Text)
-- | The list of attacks for a specified time period.
attackSummary_attackVectors :: Lens' AttackSummary (Maybe [AttackVectorDescription])
-- | The end time of the attack, in Unix time in seconds.
attackSummary_endTime :: Lens' AttackSummary (Maybe UTCTime)
-- | The ARN (Amazon Resource Name) of the resource that was attacked.
attackSummary_resourceArn :: Lens' AttackSummary (Maybe Text)
-- | The start time of the attack, in Unix time in seconds.
attackSummary_startTime :: Lens' AttackSummary (Maybe UTCTime)
instance GHC.Generics.Generic Amazonka.Shield.Types.AttackSummary.AttackSummary
instance GHC.Show.Show Amazonka.Shield.Types.AttackSummary.AttackSummary
instance GHC.Read.Read Amazonka.Shield.Types.AttackSummary.AttackSummary
instance GHC.Classes.Eq Amazonka.Shield.Types.AttackSummary.AttackSummary
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.AttackSummary.AttackSummary
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.AttackSummary.AttackSummary
instance Control.DeepSeq.NFData Amazonka.Shield.Types.AttackSummary.AttackSummary
module Amazonka.Shield.Types.AttackVolumeStatistics
-- | Statistics objects for the various data types in AttackVolume.
--
-- See: newAttackVolumeStatistics smart constructor.
data AttackVolumeStatistics
AttackVolumeStatistics' :: Double -> AttackVolumeStatistics
-- | The maximum attack volume observed for the given unit.
[$sel:max:AttackVolumeStatistics'] :: AttackVolumeStatistics -> Double
-- | Create a value of AttackVolumeStatistics with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:max:AttackVolumeStatistics',
-- attackVolumeStatistics_max - The maximum attack volume observed
-- for the given unit.
newAttackVolumeStatistics :: Double -> AttackVolumeStatistics
-- | The maximum attack volume observed for the given unit.
attackVolumeStatistics_max :: Lens' AttackVolumeStatistics Double
instance GHC.Generics.Generic Amazonka.Shield.Types.AttackVolumeStatistics.AttackVolumeStatistics
instance GHC.Show.Show Amazonka.Shield.Types.AttackVolumeStatistics.AttackVolumeStatistics
instance GHC.Read.Read Amazonka.Shield.Types.AttackVolumeStatistics.AttackVolumeStatistics
instance GHC.Classes.Eq Amazonka.Shield.Types.AttackVolumeStatistics.AttackVolumeStatistics
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.AttackVolumeStatistics.AttackVolumeStatistics
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.AttackVolumeStatistics.AttackVolumeStatistics
instance Control.DeepSeq.NFData Amazonka.Shield.Types.AttackVolumeStatistics.AttackVolumeStatistics
module Amazonka.Shield.Types.AttackVolume
-- | Information about the volume of attacks during the time period,
-- included in an AttackStatisticsDataItem. If the accompanying
-- AttackCount in the statistics object is zero, this setting
-- might be empty.
--
-- See: newAttackVolume smart constructor.
data AttackVolume
AttackVolume' :: Maybe AttackVolumeStatistics -> Maybe AttackVolumeStatistics -> Maybe AttackVolumeStatistics -> AttackVolume
-- | A statistics object that uses bits per second as the unit. This is
-- included for network level attacks.
[$sel:bitsPerSecond:AttackVolume'] :: AttackVolume -> Maybe AttackVolumeStatistics
-- | A statistics object that uses packets per second as the unit. This is
-- included for network level attacks.
[$sel:packetsPerSecond:AttackVolume'] :: AttackVolume -> Maybe AttackVolumeStatistics
-- | A statistics object that uses requests per second as the unit. This is
-- included for application level attacks, and is only available for
-- accounts that are subscribed to Shield Advanced.
[$sel:requestsPerSecond:AttackVolume'] :: AttackVolume -> Maybe AttackVolumeStatistics
-- | Create a value of AttackVolume with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:bitsPerSecond:AttackVolume',
-- attackVolume_bitsPerSecond - A statistics object that uses bits
-- per second as the unit. This is included for network level attacks.
--
-- $sel:packetsPerSecond:AttackVolume',
-- attackVolume_packetsPerSecond - A statistics object that uses
-- packets per second as the unit. This is included for network level
-- attacks.
--
-- $sel:requestsPerSecond:AttackVolume',
-- attackVolume_requestsPerSecond - A statistics object that uses
-- requests per second as the unit. This is included for application
-- level attacks, and is only available for accounts that are subscribed
-- to Shield Advanced.
newAttackVolume :: AttackVolume
-- | A statistics object that uses bits per second as the unit. This is
-- included for network level attacks.
attackVolume_bitsPerSecond :: Lens' AttackVolume (Maybe AttackVolumeStatistics)
-- | A statistics object that uses packets per second as the unit. This is
-- included for network level attacks.
attackVolume_packetsPerSecond :: Lens' AttackVolume (Maybe AttackVolumeStatistics)
-- | A statistics object that uses requests per second as the unit. This is
-- included for application level attacks, and is only available for
-- accounts that are subscribed to Shield Advanced.
attackVolume_requestsPerSecond :: Lens' AttackVolume (Maybe AttackVolumeStatistics)
instance GHC.Generics.Generic Amazonka.Shield.Types.AttackVolume.AttackVolume
instance GHC.Show.Show Amazonka.Shield.Types.AttackVolume.AttackVolume
instance GHC.Read.Read Amazonka.Shield.Types.AttackVolume.AttackVolume
instance GHC.Classes.Eq Amazonka.Shield.Types.AttackVolume.AttackVolume
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.AttackVolume.AttackVolume
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.AttackVolume.AttackVolume
instance Control.DeepSeq.NFData Amazonka.Shield.Types.AttackVolume.AttackVolume
module Amazonka.Shield.Types.AttackStatisticsDataItem
-- | A single attack statistics data record. This is returned by
-- DescribeAttackStatistics along with a time range indicating the time
-- period that the attack statistics apply to.
--
-- See: newAttackStatisticsDataItem smart constructor.
data AttackStatisticsDataItem
AttackStatisticsDataItem' :: Maybe AttackVolume -> Integer -> AttackStatisticsDataItem
-- | Information about the volume of attacks during the time period. If the
-- accompanying AttackCount is zero, this setting might be
-- empty.
[$sel:attackVolume:AttackStatisticsDataItem'] :: AttackStatisticsDataItem -> Maybe AttackVolume
-- | The number of attacks detected during the time period. This is always
-- present, but might be zero.
[$sel:attackCount:AttackStatisticsDataItem'] :: AttackStatisticsDataItem -> Integer
-- | Create a value of AttackStatisticsDataItem with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackVolume:AttackStatisticsDataItem',
-- attackStatisticsDataItem_attackVolume - Information about the
-- volume of attacks during the time period. If the accompanying
-- AttackCount is zero, this setting might be empty.
--
-- $sel:attackCount:AttackStatisticsDataItem',
-- attackStatisticsDataItem_attackCount - The number of attacks
-- detected during the time period. This is always present, but might be
-- zero.
newAttackStatisticsDataItem :: Integer -> AttackStatisticsDataItem
-- | Information about the volume of attacks during the time period. If the
-- accompanying AttackCount is zero, this setting might be
-- empty.
attackStatisticsDataItem_attackVolume :: Lens' AttackStatisticsDataItem (Maybe AttackVolume)
-- | The number of attacks detected during the time period. This is always
-- present, but might be zero.
attackStatisticsDataItem_attackCount :: Lens' AttackStatisticsDataItem Integer
instance GHC.Generics.Generic Amazonka.Shield.Types.AttackStatisticsDataItem.AttackStatisticsDataItem
instance GHC.Show.Show Amazonka.Shield.Types.AttackStatisticsDataItem.AttackStatisticsDataItem
instance GHC.Read.Read Amazonka.Shield.Types.AttackStatisticsDataItem.AttackStatisticsDataItem
instance GHC.Classes.Eq Amazonka.Shield.Types.AttackStatisticsDataItem.AttackStatisticsDataItem
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.AttackStatisticsDataItem.AttackStatisticsDataItem
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.AttackStatisticsDataItem.AttackStatisticsDataItem
instance Control.DeepSeq.NFData Amazonka.Shield.Types.AttackStatisticsDataItem.AttackStatisticsDataItem
module Amazonka.Shield.Types.AutoRenew
newtype AutoRenew
AutoRenew' :: Text -> AutoRenew
[fromAutoRenew] :: AutoRenew -> Text
pattern AutoRenew_DISABLED :: AutoRenew
pattern AutoRenew_ENABLED :: AutoRenew
instance Amazonka.Data.XML.ToXML Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Amazonka.Data.XML.FromXML Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Amazonka.Data.Headers.ToHeader Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Amazonka.Data.Log.ToLog Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Amazonka.Data.ByteString.ToByteString Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Amazonka.Data.Text.ToText Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Amazonka.Data.Text.FromText Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Control.DeepSeq.NFData Amazonka.Shield.Types.AutoRenew.AutoRenew
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.AutoRenew.AutoRenew
instance GHC.Generics.Generic Amazonka.Shield.Types.AutoRenew.AutoRenew
instance GHC.Classes.Ord Amazonka.Shield.Types.AutoRenew.AutoRenew
instance GHC.Classes.Eq Amazonka.Shield.Types.AutoRenew.AutoRenew
instance GHC.Read.Read Amazonka.Shield.Types.AutoRenew.AutoRenew
instance GHC.Show.Show Amazonka.Shield.Types.AutoRenew.AutoRenew
module Amazonka.Shield.Types.BlockAction
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Block action.
--
-- This is only used in the context of the ResponseAction
-- setting.
--
-- JSON specification: "Block": {}
--
-- See: newBlockAction smart constructor.
data BlockAction
BlockAction' :: BlockAction
-- | Create a value of BlockAction with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newBlockAction :: BlockAction
instance GHC.Generics.Generic Amazonka.Shield.Types.BlockAction.BlockAction
instance GHC.Show.Show Amazonka.Shield.Types.BlockAction.BlockAction
instance GHC.Read.Read Amazonka.Shield.Types.BlockAction.BlockAction
instance GHC.Classes.Eq Amazonka.Shield.Types.BlockAction.BlockAction
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.BlockAction.BlockAction
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.BlockAction.BlockAction
instance Control.DeepSeq.NFData Amazonka.Shield.Types.BlockAction.BlockAction
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.BlockAction.BlockAction
module Amazonka.Shield.Types.Contributor
-- | A contributor to the attack and their contribution.
--
-- See: newContributor smart constructor.
data Contributor
Contributor' :: Maybe Text -> Maybe Integer -> Contributor
-- | The name of the contributor. The type of name that you'll find here
-- depends on the AttackPropertyIdentifier setting in the
-- AttackProperty where this contributor is defined. For
-- example, if the AttackPropertyIdentifier is
-- SOURCE_COUNTRY, the Name could be United
-- States.
[$sel:name:Contributor'] :: Contributor -> Maybe Text
-- | The contribution of this contributor expressed in Protection units.
-- For example 10,000.
[$sel:value:Contributor'] :: Contributor -> Maybe Integer
-- | Create a value of Contributor with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:name:Contributor', contributor_name - The name of
-- the contributor. The type of name that you'll find here depends on the
-- AttackPropertyIdentifier setting in the
-- AttackProperty where this contributor is defined. For
-- example, if the AttackPropertyIdentifier is
-- SOURCE_COUNTRY, the Name could be United
-- States.
--
-- $sel:value:Contributor', contributor_value - The
-- contribution of this contributor expressed in Protection units. For
-- example 10,000.
newContributor :: Contributor
-- | The name of the contributor. The type of name that you'll find here
-- depends on the AttackPropertyIdentifier setting in the
-- AttackProperty where this contributor is defined. For
-- example, if the AttackPropertyIdentifier is
-- SOURCE_COUNTRY, the Name could be United
-- States.
contributor_name :: Lens' Contributor (Maybe Text)
-- | The contribution of this contributor expressed in Protection units.
-- For example 10,000.
contributor_value :: Lens' Contributor (Maybe Integer)
instance GHC.Generics.Generic Amazonka.Shield.Types.Contributor.Contributor
instance GHC.Show.Show Amazonka.Shield.Types.Contributor.Contributor
instance GHC.Read.Read Amazonka.Shield.Types.Contributor.Contributor
instance GHC.Classes.Eq Amazonka.Shield.Types.Contributor.Contributor
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.Contributor.Contributor
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.Contributor.Contributor
instance Control.DeepSeq.NFData Amazonka.Shield.Types.Contributor.Contributor
module Amazonka.Shield.Types.CountAction
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Count action.
--
-- This is only used in the context of the ResponseAction
-- setting.
--
-- JSON specification: "Count": {}
--
-- See: newCountAction smart constructor.
data CountAction
CountAction' :: CountAction
-- | Create a value of CountAction with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newCountAction :: CountAction
instance GHC.Generics.Generic Amazonka.Shield.Types.CountAction.CountAction
instance GHC.Show.Show Amazonka.Shield.Types.CountAction.CountAction
instance GHC.Read.Read Amazonka.Shield.Types.CountAction.CountAction
instance GHC.Classes.Eq Amazonka.Shield.Types.CountAction.CountAction
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.CountAction.CountAction
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.CountAction.CountAction
instance Control.DeepSeq.NFData Amazonka.Shield.Types.CountAction.CountAction
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.CountAction.CountAction
module Amazonka.Shield.Types.EmergencyContact
-- | Contact information that the SRT can use to contact you if you have
-- proactive engagement enabled, for escalations to the SRT and to
-- initiate proactive customer support.
--
-- See: newEmergencyContact smart constructor.
data EmergencyContact
EmergencyContact' :: Maybe Text -> Maybe Text -> Text -> EmergencyContact
-- | Additional notes regarding the contact.
[$sel:contactNotes:EmergencyContact'] :: EmergencyContact -> Maybe Text
-- | The phone number for the contact.
[$sel:phoneNumber:EmergencyContact'] :: EmergencyContact -> Maybe Text
-- | The email address for the contact.
[$sel:emailAddress:EmergencyContact'] :: EmergencyContact -> Text
-- | Create a value of EmergencyContact with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:contactNotes:EmergencyContact',
-- emergencyContact_contactNotes - Additional notes regarding the
-- contact.
--
-- $sel:phoneNumber:EmergencyContact',
-- emergencyContact_phoneNumber - The phone number for the
-- contact.
--
-- $sel:emailAddress:EmergencyContact',
-- emergencyContact_emailAddress - The email address for the
-- contact.
newEmergencyContact :: Text -> EmergencyContact
-- | Additional notes regarding the contact.
emergencyContact_contactNotes :: Lens' EmergencyContact (Maybe Text)
-- | The phone number for the contact.
emergencyContact_phoneNumber :: Lens' EmergencyContact (Maybe Text)
-- | The email address for the contact.
emergencyContact_emailAddress :: Lens' EmergencyContact Text
instance GHC.Generics.Generic Amazonka.Shield.Types.EmergencyContact.EmergencyContact
instance GHC.Show.Show Amazonka.Shield.Types.EmergencyContact.EmergencyContact
instance GHC.Read.Read Amazonka.Shield.Types.EmergencyContact.EmergencyContact
instance GHC.Classes.Eq Amazonka.Shield.Types.EmergencyContact.EmergencyContact
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.EmergencyContact.EmergencyContact
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.EmergencyContact.EmergencyContact
instance Control.DeepSeq.NFData Amazonka.Shield.Types.EmergencyContact.EmergencyContact
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.EmergencyContact.EmergencyContact
module Amazonka.Shield.Types.Limit
-- | Specifies how many protections of a given type you can create.
--
-- See: newLimit smart constructor.
data Limit
Limit' :: Maybe Integer -> Maybe Text -> Limit
-- | The maximum number of protections that can be created for the
-- specified Type.
[$sel:max:Limit'] :: Limit -> Maybe Integer
-- | The type of protection.
[$sel:type':Limit'] :: Limit -> Maybe Text
-- | Create a value of Limit with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:max:Limit', limit_max - The maximum number of
-- protections that can be created for the specified Type.
--
-- $sel:type':Limit', limit_type - The type of protection.
newLimit :: Limit
-- | The maximum number of protections that can be created for the
-- specified Type.
limit_max :: Lens' Limit (Maybe Integer)
-- | The type of protection.
limit_type :: Lens' Limit (Maybe Text)
instance GHC.Generics.Generic Amazonka.Shield.Types.Limit.Limit
instance GHC.Show.Show Amazonka.Shield.Types.Limit.Limit
instance GHC.Read.Read Amazonka.Shield.Types.Limit.Limit
instance GHC.Classes.Eq Amazonka.Shield.Types.Limit.Limit
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.Limit.Limit
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.Limit.Limit
instance Control.DeepSeq.NFData Amazonka.Shield.Types.Limit.Limit
module Amazonka.Shield.Types.Mitigation
-- | The mitigation applied to a DDoS attack.
--
-- See: newMitigation smart constructor.
data Mitigation
Mitigation' :: Maybe Text -> Mitigation
-- | The name of the mitigation taken for this attack.
[$sel:mitigationName:Mitigation'] :: Mitigation -> Maybe Text
-- | Create a value of Mitigation with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:mitigationName:Mitigation',
-- mitigation_mitigationName - The name of the mitigation taken
-- for this attack.
newMitigation :: Mitigation
-- | The name of the mitigation taken for this attack.
mitigation_mitigationName :: Lens' Mitigation (Maybe Text)
instance GHC.Generics.Generic Amazonka.Shield.Types.Mitigation.Mitigation
instance GHC.Show.Show Amazonka.Shield.Types.Mitigation.Mitigation
instance GHC.Read.Read Amazonka.Shield.Types.Mitigation.Mitigation
instance GHC.Classes.Eq Amazonka.Shield.Types.Mitigation.Mitigation
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.Mitigation.Mitigation
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.Mitigation.Mitigation
instance Control.DeepSeq.NFData Amazonka.Shield.Types.Mitigation.Mitigation
module Amazonka.Shield.Types.ProactiveEngagementStatus
newtype ProactiveEngagementStatus
ProactiveEngagementStatus' :: Text -> ProactiveEngagementStatus
[fromProactiveEngagementStatus] :: ProactiveEngagementStatus -> Text
pattern ProactiveEngagementStatus_DISABLED :: ProactiveEngagementStatus
pattern ProactiveEngagementStatus_ENABLED :: ProactiveEngagementStatus
pattern ProactiveEngagementStatus_PENDING :: ProactiveEngagementStatus
instance Amazonka.Data.XML.ToXML Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Amazonka.Data.XML.FromXML Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Amazonka.Data.Headers.ToHeader Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Amazonka.Data.Log.ToLog Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Amazonka.Data.ByteString.ToByteString Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Amazonka.Data.Text.ToText Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Amazonka.Data.Text.FromText Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance GHC.Generics.Generic Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance GHC.Classes.Ord Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance GHC.Classes.Eq Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance GHC.Read.Read Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
instance GHC.Show.Show Amazonka.Shield.Types.ProactiveEngagementStatus.ProactiveEngagementStatus
module Amazonka.Shield.Types.ProtectedResourceType
newtype ProtectedResourceType
ProtectedResourceType' :: Text -> ProtectedResourceType
[fromProtectedResourceType] :: ProtectedResourceType -> Text
pattern ProtectedResourceType_APPLICATION_LOAD_BALANCER :: ProtectedResourceType
pattern ProtectedResourceType_CLASSIC_LOAD_BALANCER :: ProtectedResourceType
pattern ProtectedResourceType_CLOUDFRONT_DISTRIBUTION :: ProtectedResourceType
pattern ProtectedResourceType_ELASTIC_IP_ALLOCATION :: ProtectedResourceType
pattern ProtectedResourceType_GLOBAL_ACCELERATOR :: ProtectedResourceType
pattern ProtectedResourceType_ROUTE_53_HOSTED_ZONE :: ProtectedResourceType
instance Amazonka.Data.XML.ToXML Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Amazonka.Data.XML.FromXML Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Amazonka.Data.Headers.ToHeader Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Amazonka.Data.Log.ToLog Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Amazonka.Data.ByteString.ToByteString Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Amazonka.Data.Text.ToText Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Amazonka.Data.Text.FromText Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance GHC.Generics.Generic Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance GHC.Classes.Ord Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance GHC.Classes.Eq Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance GHC.Read.Read Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
instance GHC.Show.Show Amazonka.Shield.Types.ProtectedResourceType.ProtectedResourceType
module Amazonka.Shield.Types.InclusionProtectionFilters
-- | Narrows the set of protections that the call retrieves. You can
-- retrieve a single protection by providing its name or the ARN (Amazon
-- Resource Name) of its protected resource. You can also retrieve all
-- protections for a specific resource type. You can provide up to one
-- criteria per filter type. Shield Advanced returns protections that
-- exactly match all of the filter criteria that you provide.
--
-- See: newInclusionProtectionFilters smart constructor.
data InclusionProtectionFilters
InclusionProtectionFilters' :: Maybe (NonEmpty Text) -> Maybe (NonEmpty Text) -> Maybe (NonEmpty ProtectedResourceType) -> InclusionProtectionFilters
-- | The name of the protection that you want to retrieve.
[$sel:protectionNames:InclusionProtectionFilters'] :: InclusionProtectionFilters -> Maybe (NonEmpty Text)
-- | The ARN (Amazon Resource Name) of the resource whose protection you
-- want to retrieve.
[$sel:resourceArns:InclusionProtectionFilters'] :: InclusionProtectionFilters -> Maybe (NonEmpty Text)
-- | The type of protected resource whose protections you want to retrieve.
[$sel:resourceTypes:InclusionProtectionFilters'] :: InclusionProtectionFilters -> Maybe (NonEmpty ProtectedResourceType)
-- | Create a value of InclusionProtectionFilters with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionNames:InclusionProtectionFilters',
-- inclusionProtectionFilters_protectionNames - The name of the
-- protection that you want to retrieve.
--
-- $sel:resourceArns:InclusionProtectionFilters',
-- inclusionProtectionFilters_resourceArns - The ARN (Amazon
-- Resource Name) of the resource whose protection you want to retrieve.
--
-- $sel:resourceTypes:InclusionProtectionFilters',
-- inclusionProtectionFilters_resourceTypes - The type of
-- protected resource whose protections you want to retrieve.
newInclusionProtectionFilters :: InclusionProtectionFilters
-- | The name of the protection that you want to retrieve.
inclusionProtectionFilters_protectionNames :: Lens' InclusionProtectionFilters (Maybe (NonEmpty Text))
-- | The ARN (Amazon Resource Name) of the resource whose protection you
-- want to retrieve.
inclusionProtectionFilters_resourceArns :: Lens' InclusionProtectionFilters (Maybe (NonEmpty Text))
-- | The type of protected resource whose protections you want to retrieve.
inclusionProtectionFilters_resourceTypes :: Lens' InclusionProtectionFilters (Maybe (NonEmpty ProtectedResourceType))
instance GHC.Generics.Generic Amazonka.Shield.Types.InclusionProtectionFilters.InclusionProtectionFilters
instance GHC.Show.Show Amazonka.Shield.Types.InclusionProtectionFilters.InclusionProtectionFilters
instance GHC.Read.Read Amazonka.Shield.Types.InclusionProtectionFilters.InclusionProtectionFilters
instance GHC.Classes.Eq Amazonka.Shield.Types.InclusionProtectionFilters.InclusionProtectionFilters
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.InclusionProtectionFilters.InclusionProtectionFilters
instance Control.DeepSeq.NFData Amazonka.Shield.Types.InclusionProtectionFilters.InclusionProtectionFilters
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.InclusionProtectionFilters.InclusionProtectionFilters
module Amazonka.Shield.Types.ProtectionGroupAggregation
newtype ProtectionGroupAggregation
ProtectionGroupAggregation' :: Text -> ProtectionGroupAggregation
[fromProtectionGroupAggregation] :: ProtectionGroupAggregation -> Text
pattern ProtectionGroupAggregation_MAX :: ProtectionGroupAggregation
pattern ProtectionGroupAggregation_MEAN :: ProtectionGroupAggregation
pattern ProtectionGroupAggregation_SUM :: ProtectionGroupAggregation
instance Amazonka.Data.XML.ToXML Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Amazonka.Data.XML.FromXML Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Amazonka.Data.Headers.ToHeader Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Amazonka.Data.Log.ToLog Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Amazonka.Data.ByteString.ToByteString Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Amazonka.Data.Text.ToText Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Amazonka.Data.Text.FromText Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance GHC.Generics.Generic Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance GHC.Classes.Ord Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance GHC.Classes.Eq Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance GHC.Read.Read Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
instance GHC.Show.Show Amazonka.Shield.Types.ProtectionGroupAggregation.ProtectionGroupAggregation
module Amazonka.Shield.Types.ProtectionGroupArbitraryPatternLimits
-- | Limits settings on protection groups with arbitrary pattern type.
--
-- See: newProtectionGroupArbitraryPatternLimits smart
-- constructor.
data ProtectionGroupArbitraryPatternLimits
ProtectionGroupArbitraryPatternLimits' :: Integer -> ProtectionGroupArbitraryPatternLimits
-- | The maximum number of resources you can specify for a single arbitrary
-- pattern in a protection group.
[$sel:maxMembers:ProtectionGroupArbitraryPatternLimits'] :: ProtectionGroupArbitraryPatternLimits -> Integer
-- | Create a value of ProtectionGroupArbitraryPatternLimits with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:maxMembers:ProtectionGroupArbitraryPatternLimits',
-- protectionGroupArbitraryPatternLimits_maxMembers - The maximum
-- number of resources you can specify for a single arbitrary pattern in
-- a protection group.
newProtectionGroupArbitraryPatternLimits :: Integer -> ProtectionGroupArbitraryPatternLimits
-- | The maximum number of resources you can specify for a single arbitrary
-- pattern in a protection group.
protectionGroupArbitraryPatternLimits_maxMembers :: Lens' ProtectionGroupArbitraryPatternLimits Integer
instance GHC.Generics.Generic Amazonka.Shield.Types.ProtectionGroupArbitraryPatternLimits.ProtectionGroupArbitraryPatternLimits
instance GHC.Show.Show Amazonka.Shield.Types.ProtectionGroupArbitraryPatternLimits.ProtectionGroupArbitraryPatternLimits
instance GHC.Read.Read Amazonka.Shield.Types.ProtectionGroupArbitraryPatternLimits.ProtectionGroupArbitraryPatternLimits
instance GHC.Classes.Eq Amazonka.Shield.Types.ProtectionGroupArbitraryPatternLimits.ProtectionGroupArbitraryPatternLimits
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ProtectionGroupArbitraryPatternLimits.ProtectionGroupArbitraryPatternLimits
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ProtectionGroupArbitraryPatternLimits.ProtectionGroupArbitraryPatternLimits
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ProtectionGroupArbitraryPatternLimits.ProtectionGroupArbitraryPatternLimits
module Amazonka.Shield.Types.ProtectionGroupPattern
newtype ProtectionGroupPattern
ProtectionGroupPattern' :: Text -> ProtectionGroupPattern
[fromProtectionGroupPattern] :: ProtectionGroupPattern -> Text
pattern ProtectionGroupPattern_ALL :: ProtectionGroupPattern
pattern ProtectionGroupPattern_ARBITRARY :: ProtectionGroupPattern
pattern ProtectionGroupPattern_BY_RESOURCE_TYPE :: ProtectionGroupPattern
instance Amazonka.Data.XML.ToXML Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Amazonka.Data.XML.FromXML Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Amazonka.Data.Headers.ToHeader Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Amazonka.Data.Log.ToLog Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Amazonka.Data.ByteString.ToByteString Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Amazonka.Data.Text.ToText Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Amazonka.Data.Text.FromText Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance GHC.Generics.Generic Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance GHC.Classes.Ord Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance GHC.Classes.Eq Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance GHC.Read.Read Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
instance GHC.Show.Show Amazonka.Shield.Types.ProtectionGroupPattern.ProtectionGroupPattern
module Amazonka.Shield.Types.ProtectionGroup
-- | A grouping of protected resources that you and Shield Advanced can
-- monitor as a collective. This resource grouping improves the accuracy
-- of detection and reduces false positives.
--
-- See: newProtectionGroup smart constructor.
data ProtectionGroup
ProtectionGroup' :: Maybe Text -> Maybe ProtectedResourceType -> Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> [Text] -> ProtectionGroup
-- | The ARN (Amazon Resource Name) of the protection group.
[$sel:protectionGroupArn:ProtectionGroup'] :: ProtectionGroup -> Maybe Text
-- | The resource type to include in the protection group. All protected
-- resources of this type are included in the protection group. You must
-- set this when you set Pattern to BY_RESOURCE_TYPE
-- and you must not set it for any other Pattern setting.
[$sel:resourceType:ProtectionGroup'] :: ProtectionGroup -> Maybe ProtectedResourceType
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
[$sel:protectionGroupId:ProtectionGroup'] :: ProtectionGroup -> Text
-- | Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
[$sel:aggregation:ProtectionGroup'] :: ProtectionGroup -> ProtectionGroupAggregation
-- | The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource ARNs (Amazon Resource Names), or include
-- all resources of a specified resource type.
[$sel:pattern':ProtectionGroup'] :: ProtectionGroup -> ProtectionGroupPattern
-- | The ARNs (Amazon Resource Names) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
[$sel:members:ProtectionGroup'] :: ProtectionGroup -> [Text]
-- | Create a value of ProtectionGroup with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionGroupArn:ProtectionGroup',
-- protectionGroup_protectionGroupArn - The ARN (Amazon Resource
-- Name) of the protection group.
--
-- $sel:resourceType:ProtectionGroup',
-- protectionGroup_resourceType - The resource type to include in
-- the protection group. All protected resources of this type are
-- included in the protection group. You must set this when you set
-- Pattern to BY_RESOURCE_TYPE and you must not set it
-- for any other Pattern setting.
--
-- $sel:protectionGroupId:ProtectionGroup',
-- protectionGroup_protectionGroupId - The name of the protection
-- group. You use this to identify the protection group in lists and to
-- manage the protection group, for example to update, delete, or
-- describe it.
--
-- $sel:aggregation:ProtectionGroup',
-- protectionGroup_aggregation - Defines how Shield combines
-- resource data for the group in order to detect, mitigate, and report
-- events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
--
-- $sel:pattern':ProtectionGroup', protectionGroup_pattern
-- - The criteria to use to choose the protected resources for inclusion
-- in the group. You can include all resources that have protections,
-- provide a list of resource ARNs (Amazon Resource Names), or include
-- all resources of a specified resource type.
--
-- $sel:members:ProtectionGroup', protectionGroup_members -
-- The ARNs (Amazon Resource Names) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
newProtectionGroup :: Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> ProtectionGroup
-- | The ARN (Amazon Resource Name) of the protection group.
protectionGroup_protectionGroupArn :: Lens' ProtectionGroup (Maybe Text)
-- | The resource type to include in the protection group. All protected
-- resources of this type are included in the protection group. You must
-- set this when you set Pattern to BY_RESOURCE_TYPE
-- and you must not set it for any other Pattern setting.
protectionGroup_resourceType :: Lens' ProtectionGroup (Maybe ProtectedResourceType)
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
protectionGroup_protectionGroupId :: Lens' ProtectionGroup Text
-- | Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
protectionGroup_aggregation :: Lens' ProtectionGroup ProtectionGroupAggregation
-- | The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource ARNs (Amazon Resource Names), or include
-- all resources of a specified resource type.
protectionGroup_pattern :: Lens' ProtectionGroup ProtectionGroupPattern
-- | The ARNs (Amazon Resource Names) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
protectionGroup_members :: Lens' ProtectionGroup [Text]
instance GHC.Generics.Generic Amazonka.Shield.Types.ProtectionGroup.ProtectionGroup
instance GHC.Show.Show Amazonka.Shield.Types.ProtectionGroup.ProtectionGroup
instance GHC.Read.Read Amazonka.Shield.Types.ProtectionGroup.ProtectionGroup
instance GHC.Classes.Eq Amazonka.Shield.Types.ProtectionGroup.ProtectionGroup
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ProtectionGroup.ProtectionGroup
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ProtectionGroup.ProtectionGroup
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ProtectionGroup.ProtectionGroup
module Amazonka.Shield.Types.InclusionProtectionGroupFilters
-- | Narrows the set of protection groups that the call retrieves. You can
-- retrieve a single protection group by its name and you can retrieve
-- all protection groups that are configured with a specific pattern,
-- aggregation, or resource type. You can provide up to one criteria per
-- filter type. Shield Advanced returns the protection groups that
-- exactly match all of the search criteria that you provide.
--
-- See: newInclusionProtectionGroupFilters smart
-- constructor.
data InclusionProtectionGroupFilters
InclusionProtectionGroupFilters' :: Maybe (NonEmpty ProtectionGroupAggregation) -> Maybe (NonEmpty ProtectionGroupPattern) -> Maybe (NonEmpty Text) -> Maybe (NonEmpty ProtectedResourceType) -> InclusionProtectionGroupFilters
-- | The aggregation setting of the protection groups that you want to
-- retrieve.
[$sel:aggregations:InclusionProtectionGroupFilters'] :: InclusionProtectionGroupFilters -> Maybe (NonEmpty ProtectionGroupAggregation)
-- | The pattern specification of the protection groups that you want to
-- retrieve.
[$sel:patterns:InclusionProtectionGroupFilters'] :: InclusionProtectionGroupFilters -> Maybe (NonEmpty ProtectionGroupPattern)
-- | The ID of the protection group that you want to retrieve.
[$sel:protectionGroupIds:InclusionProtectionGroupFilters'] :: InclusionProtectionGroupFilters -> Maybe (NonEmpty Text)
-- | The resource type configuration of the protection groups that you want
-- to retrieve. In the protection group configuration, you specify the
-- resource type when you set the group's Pattern to
-- BY_RESOURCE_TYPE.
[$sel:resourceTypes:InclusionProtectionGroupFilters'] :: InclusionProtectionGroupFilters -> Maybe (NonEmpty ProtectedResourceType)
-- | Create a value of InclusionProtectionGroupFilters with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:aggregations:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_aggregations - The aggregation
-- setting of the protection groups that you want to retrieve.
--
-- $sel:patterns:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_patterns - The pattern
-- specification of the protection groups that you want to retrieve.
--
-- $sel:protectionGroupIds:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_protectionGroupIds - The ID of
-- the protection group that you want to retrieve.
--
-- $sel:resourceTypes:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_resourceTypes - The resource
-- type configuration of the protection groups that you want to retrieve.
-- In the protection group configuration, you specify the resource type
-- when you set the group's Pattern to
-- BY_RESOURCE_TYPE.
newInclusionProtectionGroupFilters :: InclusionProtectionGroupFilters
-- | The aggregation setting of the protection groups that you want to
-- retrieve.
inclusionProtectionGroupFilters_aggregations :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty ProtectionGroupAggregation))
-- | The pattern specification of the protection groups that you want to
-- retrieve.
inclusionProtectionGroupFilters_patterns :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty ProtectionGroupPattern))
-- | The ID of the protection group that you want to retrieve.
inclusionProtectionGroupFilters_protectionGroupIds :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty Text))
-- | The resource type configuration of the protection groups that you want
-- to retrieve. In the protection group configuration, you specify the
-- resource type when you set the group's Pattern to
-- BY_RESOURCE_TYPE.
inclusionProtectionGroupFilters_resourceTypes :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty ProtectedResourceType))
instance GHC.Generics.Generic Amazonka.Shield.Types.InclusionProtectionGroupFilters.InclusionProtectionGroupFilters
instance GHC.Show.Show Amazonka.Shield.Types.InclusionProtectionGroupFilters.InclusionProtectionGroupFilters
instance GHC.Read.Read Amazonka.Shield.Types.InclusionProtectionGroupFilters.InclusionProtectionGroupFilters
instance GHC.Classes.Eq Amazonka.Shield.Types.InclusionProtectionGroupFilters.InclusionProtectionGroupFilters
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.InclusionProtectionGroupFilters.InclusionProtectionGroupFilters
instance Control.DeepSeq.NFData Amazonka.Shield.Types.InclusionProtectionGroupFilters.InclusionProtectionGroupFilters
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.InclusionProtectionGroupFilters.InclusionProtectionGroupFilters
module Amazonka.Shield.Types.ProtectionGroupPatternTypeLimits
-- | Limits settings by pattern type in the protection groups for your
-- subscription.
--
-- See: newProtectionGroupPatternTypeLimits smart
-- constructor.
data ProtectionGroupPatternTypeLimits
ProtectionGroupPatternTypeLimits' :: ProtectionGroupArbitraryPatternLimits -> ProtectionGroupPatternTypeLimits
-- | Limits settings on protection groups with arbitrary pattern type.
[$sel:arbitraryPatternLimits:ProtectionGroupPatternTypeLimits'] :: ProtectionGroupPatternTypeLimits -> ProtectionGroupArbitraryPatternLimits
-- | Create a value of ProtectionGroupPatternTypeLimits with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:arbitraryPatternLimits:ProtectionGroupPatternTypeLimits',
-- protectionGroupPatternTypeLimits_arbitraryPatternLimits -
-- Limits settings on protection groups with arbitrary pattern type.
newProtectionGroupPatternTypeLimits :: ProtectionGroupArbitraryPatternLimits -> ProtectionGroupPatternTypeLimits
-- | Limits settings on protection groups with arbitrary pattern type.
protectionGroupPatternTypeLimits_arbitraryPatternLimits :: Lens' ProtectionGroupPatternTypeLimits ProtectionGroupArbitraryPatternLimits
instance GHC.Generics.Generic Amazonka.Shield.Types.ProtectionGroupPatternTypeLimits.ProtectionGroupPatternTypeLimits
instance GHC.Show.Show Amazonka.Shield.Types.ProtectionGroupPatternTypeLimits.ProtectionGroupPatternTypeLimits
instance GHC.Read.Read Amazonka.Shield.Types.ProtectionGroupPatternTypeLimits.ProtectionGroupPatternTypeLimits
instance GHC.Classes.Eq Amazonka.Shield.Types.ProtectionGroupPatternTypeLimits.ProtectionGroupPatternTypeLimits
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ProtectionGroupPatternTypeLimits.ProtectionGroupPatternTypeLimits
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ProtectionGroupPatternTypeLimits.ProtectionGroupPatternTypeLimits
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ProtectionGroupPatternTypeLimits.ProtectionGroupPatternTypeLimits
module Amazonka.Shield.Types.ProtectionGroupLimits
-- | Limits settings on protection groups for your subscription.
--
-- See: newProtectionGroupLimits smart constructor.
data ProtectionGroupLimits
ProtectionGroupLimits' :: Integer -> ProtectionGroupPatternTypeLimits -> ProtectionGroupLimits
-- | The maximum number of protection groups that you can have at one time.
[$sel:maxProtectionGroups:ProtectionGroupLimits'] :: ProtectionGroupLimits -> Integer
-- | Limits settings by pattern type in the protection groups for your
-- subscription.
[$sel:patternTypeLimits:ProtectionGroupLimits'] :: ProtectionGroupLimits -> ProtectionGroupPatternTypeLimits
-- | Create a value of ProtectionGroupLimits with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:maxProtectionGroups:ProtectionGroupLimits',
-- protectionGroupLimits_maxProtectionGroups - The maximum number
-- of protection groups that you can have at one time.
--
-- $sel:patternTypeLimits:ProtectionGroupLimits',
-- protectionGroupLimits_patternTypeLimits - Limits settings by
-- pattern type in the protection groups for your subscription.
newProtectionGroupLimits :: Integer -> ProtectionGroupPatternTypeLimits -> ProtectionGroupLimits
-- | The maximum number of protection groups that you can have at one time.
protectionGroupLimits_maxProtectionGroups :: Lens' ProtectionGroupLimits Integer
-- | Limits settings by pattern type in the protection groups for your
-- subscription.
protectionGroupLimits_patternTypeLimits :: Lens' ProtectionGroupLimits ProtectionGroupPatternTypeLimits
instance GHC.Generics.Generic Amazonka.Shield.Types.ProtectionGroupLimits.ProtectionGroupLimits
instance GHC.Show.Show Amazonka.Shield.Types.ProtectionGroupLimits.ProtectionGroupLimits
instance GHC.Read.Read Amazonka.Shield.Types.ProtectionGroupLimits.ProtectionGroupLimits
instance GHC.Classes.Eq Amazonka.Shield.Types.ProtectionGroupLimits.ProtectionGroupLimits
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ProtectionGroupLimits.ProtectionGroupLimits
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ProtectionGroupLimits.ProtectionGroupLimits
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ProtectionGroupLimits.ProtectionGroupLimits
module Amazonka.Shield.Types.ProtectionLimits
-- | Limits settings on protections for your subscription.
--
-- See: newProtectionLimits smart constructor.
data ProtectionLimits
ProtectionLimits' :: [Limit] -> ProtectionLimits
-- | The maximum number of resource types that you can specify in a
-- protection.
[$sel:protectedResourceTypeLimits:ProtectionLimits'] :: ProtectionLimits -> [Limit]
-- | Create a value of ProtectionLimits with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectedResourceTypeLimits:ProtectionLimits',
-- protectionLimits_protectedResourceTypeLimits - The maximum
-- number of resource types that you can specify in a protection.
newProtectionLimits :: ProtectionLimits
-- | The maximum number of resource types that you can specify in a
-- protection.
protectionLimits_protectedResourceTypeLimits :: Lens' ProtectionLimits [Limit]
instance GHC.Generics.Generic Amazonka.Shield.Types.ProtectionLimits.ProtectionLimits
instance GHC.Show.Show Amazonka.Shield.Types.ProtectionLimits.ProtectionLimits
instance GHC.Read.Read Amazonka.Shield.Types.ProtectionLimits.ProtectionLimits
instance GHC.Classes.Eq Amazonka.Shield.Types.ProtectionLimits.ProtectionLimits
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ProtectionLimits.ProtectionLimits
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ProtectionLimits.ProtectionLimits
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ProtectionLimits.ProtectionLimits
module Amazonka.Shield.Types.ResponseAction
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
--
-- See: newResponseAction smart constructor.
data ResponseAction
ResponseAction' :: Maybe BlockAction -> Maybe CountAction -> ResponseAction
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Block action.
--
-- You must specify exactly one action, either Block or
-- Count.
[$sel:block:ResponseAction'] :: ResponseAction -> Maybe BlockAction
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Count action.
--
-- You must specify exactly one action, either Block or
-- Count.
[$sel:count:ResponseAction'] :: ResponseAction -> Maybe CountAction
-- | Create a value of ResponseAction with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:block:ResponseAction', responseAction_block -
-- Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Block action.
--
-- You must specify exactly one action, either Block or
-- Count.
--
-- $sel:count:ResponseAction', responseAction_count -
-- Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Count action.
--
-- You must specify exactly one action, either Block or
-- Count.
newResponseAction :: ResponseAction
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Block action.
--
-- You must specify exactly one action, either Block or
-- Count.
responseAction_block :: Lens' ResponseAction (Maybe BlockAction)
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Count action.
--
-- You must specify exactly one action, either Block or
-- Count.
responseAction_count :: Lens' ResponseAction (Maybe CountAction)
instance GHC.Generics.Generic Amazonka.Shield.Types.ResponseAction.ResponseAction
instance GHC.Show.Show Amazonka.Shield.Types.ResponseAction.ResponseAction
instance GHC.Read.Read Amazonka.Shield.Types.ResponseAction.ResponseAction
instance GHC.Classes.Eq Amazonka.Shield.Types.ResponseAction.ResponseAction
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ResponseAction.ResponseAction
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ResponseAction.ResponseAction
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ResponseAction.ResponseAction
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.ResponseAction.ResponseAction
module Amazonka.Shield.Types.ApplicationLayerAutomaticResponseConfiguration
-- | The automatic application layer DDoS mitigation settings for a
-- Protection. This configuration determines whether Shield Advanced
-- automatically manages rules in the web ACL in order to respond to
-- application layer events that Shield Advanced determines to be DDoS
-- attacks.
--
-- See: newApplicationLayerAutomaticResponseConfiguration
-- smart constructor.
data ApplicationLayerAutomaticResponseConfiguration
ApplicationLayerAutomaticResponseConfiguration' :: ApplicationLayerAutomaticResponseStatus -> ResponseAction -> ApplicationLayerAutomaticResponseConfiguration
-- | Indicates whether automatic application layer DDoS mitigation is
-- enabled for the protection.
[$sel:status:ApplicationLayerAutomaticResponseConfiguration'] :: ApplicationLayerAutomaticResponseConfiguration -> ApplicationLayerAutomaticResponseStatus
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
[$sel:action:ApplicationLayerAutomaticResponseConfiguration'] :: ApplicationLayerAutomaticResponseConfiguration -> ResponseAction
-- | Create a value of
-- ApplicationLayerAutomaticResponseConfiguration with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:status:ApplicationLayerAutomaticResponseConfiguration',
-- applicationLayerAutomaticResponseConfiguration_status -
-- Indicates whether automatic application layer DDoS mitigation is
-- enabled for the protection.
--
-- $sel:action:ApplicationLayerAutomaticResponseConfiguration',
-- applicationLayerAutomaticResponseConfiguration_action -
-- Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
newApplicationLayerAutomaticResponseConfiguration :: ApplicationLayerAutomaticResponseStatus -> ResponseAction -> ApplicationLayerAutomaticResponseConfiguration
-- | Indicates whether automatic application layer DDoS mitigation is
-- enabled for the protection.
applicationLayerAutomaticResponseConfiguration_status :: Lens' ApplicationLayerAutomaticResponseConfiguration ApplicationLayerAutomaticResponseStatus
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
applicationLayerAutomaticResponseConfiguration_action :: Lens' ApplicationLayerAutomaticResponseConfiguration ResponseAction
instance GHC.Generics.Generic Amazonka.Shield.Types.ApplicationLayerAutomaticResponseConfiguration.ApplicationLayerAutomaticResponseConfiguration
instance GHC.Show.Show Amazonka.Shield.Types.ApplicationLayerAutomaticResponseConfiguration.ApplicationLayerAutomaticResponseConfiguration
instance GHC.Read.Read Amazonka.Shield.Types.ApplicationLayerAutomaticResponseConfiguration.ApplicationLayerAutomaticResponseConfiguration
instance GHC.Classes.Eq Amazonka.Shield.Types.ApplicationLayerAutomaticResponseConfiguration.ApplicationLayerAutomaticResponseConfiguration
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.ApplicationLayerAutomaticResponseConfiguration.ApplicationLayerAutomaticResponseConfiguration
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.ApplicationLayerAutomaticResponseConfiguration.ApplicationLayerAutomaticResponseConfiguration
instance Control.DeepSeq.NFData Amazonka.Shield.Types.ApplicationLayerAutomaticResponseConfiguration.ApplicationLayerAutomaticResponseConfiguration
module Amazonka.Shield.Types.Protection
-- | An object that represents a resource that is under DDoS protection.
--
-- See: newProtection smart constructor.
data Protection
Protection' :: Maybe ApplicationLayerAutomaticResponseConfiguration -> Maybe [Text] -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Protection
-- | The automatic application layer DDoS mitigation settings for the
-- protection. This configuration determines whether Shield Advanced
-- automatically manages rules in the web ACL in order to respond to
-- application layer events that Shield Advanced determines to be DDoS
-- attacks.
[$sel:applicationLayerAutomaticResponseConfiguration:Protection'] :: Protection -> Maybe ApplicationLayerAutomaticResponseConfiguration
-- | The unique identifier (ID) for the Route 53 health check that's
-- associated with the protection.
[$sel:healthCheckIds:Protection'] :: Protection -> Maybe [Text]
-- | The unique identifier (ID) of the protection.
[$sel:id:Protection'] :: Protection -> Maybe Text
-- | The name of the protection. For example, My CloudFront
-- distributions.
[$sel:name:Protection'] :: Protection -> Maybe Text
-- | The ARN (Amazon Resource Name) of the protection.
[$sel:protectionArn:Protection'] :: Protection -> Maybe Text
-- | The ARN (Amazon Resource Name) of the Amazon Web Services resource
-- that is protected.
[$sel:resourceArn:Protection'] :: Protection -> Maybe Text
-- | Create a value of Protection with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
--
-- $sel:applicationLayerAutomaticResponseConfiguration:Protection',
-- protection_applicationLayerAutomaticResponseConfiguration - The
-- automatic application layer DDoS mitigation settings for the
-- protection. This configuration determines whether Shield Advanced
-- automatically manages rules in the web ACL in order to respond to
-- application layer events that Shield Advanced determines to be DDoS
-- attacks.
--
-- $sel:healthCheckIds:Protection',
-- protection_healthCheckIds - The unique identifier (ID) for the
-- Route 53 health check that's associated with the protection.
--
-- $sel:id:Protection', protection_id - The unique
-- identifier (ID) of the protection.
--
-- $sel:name:Protection', protection_name - The name of the
-- protection. For example, My CloudFront distributions.
--
-- $sel:protectionArn:Protection', protection_protectionArn
-- - The ARN (Amazon Resource Name) of the protection.
--
-- $sel:resourceArn:Protection', protection_resourceArn -
-- The ARN (Amazon Resource Name) of the Amazon Web Services resource
-- that is protected.
newProtection :: Protection
-- | The automatic application layer DDoS mitigation settings for the
-- protection. This configuration determines whether Shield Advanced
-- automatically manages rules in the web ACL in order to respond to
-- application layer events that Shield Advanced determines to be DDoS
-- attacks.
protection_applicationLayerAutomaticResponseConfiguration :: Lens' Protection (Maybe ApplicationLayerAutomaticResponseConfiguration)
-- | The unique identifier (ID) for the Route 53 health check that's
-- associated with the protection.
protection_healthCheckIds :: Lens' Protection (Maybe [Text])
-- | The unique identifier (ID) of the protection.
protection_id :: Lens' Protection (Maybe Text)
-- | The name of the protection. For example, My CloudFront
-- distributions.
protection_name :: Lens' Protection (Maybe Text)
-- | The ARN (Amazon Resource Name) of the protection.
protection_protectionArn :: Lens' Protection (Maybe Text)
-- | The ARN (Amazon Resource Name) of the Amazon Web Services resource
-- that is protected.
protection_resourceArn :: Lens' Protection (Maybe Text)
instance GHC.Generics.Generic Amazonka.Shield.Types.Protection.Protection
instance GHC.Show.Show Amazonka.Shield.Types.Protection.Protection
instance GHC.Read.Read Amazonka.Shield.Types.Protection.Protection
instance GHC.Classes.Eq Amazonka.Shield.Types.Protection.Protection
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.Protection.Protection
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.Protection.Protection
instance Control.DeepSeq.NFData Amazonka.Shield.Types.Protection.Protection
module Amazonka.Shield.Types.SubResourceType
newtype SubResourceType
SubResourceType' :: Text -> SubResourceType
[fromSubResourceType] :: SubResourceType -> Text
pattern SubResourceType_IP :: SubResourceType
pattern SubResourceType_URL :: SubResourceType
instance Amazonka.Data.XML.ToXML Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Amazonka.Data.XML.FromXML Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Amazonka.Data.Headers.ToHeader Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Amazonka.Data.Log.ToLog Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Amazonka.Data.ByteString.ToByteString Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Amazonka.Data.Text.ToText Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Amazonka.Data.Text.FromText Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Control.DeepSeq.NFData Amazonka.Shield.Types.SubResourceType.SubResourceType
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.SubResourceType.SubResourceType
instance GHC.Generics.Generic Amazonka.Shield.Types.SubResourceType.SubResourceType
instance GHC.Classes.Ord Amazonka.Shield.Types.SubResourceType.SubResourceType
instance GHC.Classes.Eq Amazonka.Shield.Types.SubResourceType.SubResourceType
instance GHC.Read.Read Amazonka.Shield.Types.SubResourceType.SubResourceType
instance GHC.Show.Show Amazonka.Shield.Types.SubResourceType.SubResourceType
module Amazonka.Shield.Types.SubscriptionLimits
-- | Limits settings for your subscription.
--
-- See: newSubscriptionLimits smart constructor.
data SubscriptionLimits
SubscriptionLimits' :: ProtectionLimits -> ProtectionGroupLimits -> SubscriptionLimits
-- | Limits settings on protections for your subscription.
[$sel:protectionLimits:SubscriptionLimits'] :: SubscriptionLimits -> ProtectionLimits
-- | Limits settings on protection groups for your subscription.
[$sel:protectionGroupLimits:SubscriptionLimits'] :: SubscriptionLimits -> ProtectionGroupLimits
-- | Create a value of SubscriptionLimits with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionLimits:SubscriptionLimits',
-- subscriptionLimits_protectionLimits - Limits settings on
-- protections for your subscription.
--
-- $sel:protectionGroupLimits:SubscriptionLimits',
-- subscriptionLimits_protectionGroupLimits - Limits settings on
-- protection groups for your subscription.
newSubscriptionLimits :: ProtectionLimits -> ProtectionGroupLimits -> SubscriptionLimits
-- | Limits settings on protections for your subscription.
subscriptionLimits_protectionLimits :: Lens' SubscriptionLimits ProtectionLimits
-- | Limits settings on protection groups for your subscription.
subscriptionLimits_protectionGroupLimits :: Lens' SubscriptionLimits ProtectionGroupLimits
instance GHC.Generics.Generic Amazonka.Shield.Types.SubscriptionLimits.SubscriptionLimits
instance GHC.Show.Show Amazonka.Shield.Types.SubscriptionLimits.SubscriptionLimits
instance GHC.Read.Read Amazonka.Shield.Types.SubscriptionLimits.SubscriptionLimits
instance GHC.Classes.Eq Amazonka.Shield.Types.SubscriptionLimits.SubscriptionLimits
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.SubscriptionLimits.SubscriptionLimits
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.SubscriptionLimits.SubscriptionLimits
instance Control.DeepSeq.NFData Amazonka.Shield.Types.SubscriptionLimits.SubscriptionLimits
module Amazonka.Shield.Types.Subscription
-- | Information about the Shield Advanced subscription for an account.
--
-- See: newSubscription smart constructor.
data Subscription
Subscription' :: Maybe AutoRenew -> Maybe POSIX -> Maybe [Limit] -> Maybe ProactiveEngagementStatus -> Maybe POSIX -> Maybe Text -> Maybe Natural -> SubscriptionLimits -> Subscription
-- | If ENABLED, the subscription will be automatically renewed at
-- the end of the existing subscription period.
--
-- When you initally create a subscription, AutoRenew is set to
-- ENABLED. You can change this by submitting an
-- UpdateSubscription request. If the
-- UpdateSubscription request does not included a value for
-- AutoRenew, the existing value for AutoRenew remains
-- unchanged.
[$sel:autoRenew:Subscription'] :: Subscription -> Maybe AutoRenew
-- | The date and time your subscription will end.
[$sel:endTime:Subscription'] :: Subscription -> Maybe POSIX
-- | Specifies how many protections of a given type you can create.
[$sel:limits:Subscription'] :: Subscription -> Maybe [Limit]
-- | If ENABLED, the Shield Response Team (SRT) will use email and
-- phone to notify contacts about escalations to the SRT and to initiate
-- proactive customer support.
--
-- If PENDING, you have requested proactive engagement and the
-- request is pending. The status changes to ENABLED when your
-- request is fully processed.
--
-- If DISABLED, the SRT will not proactively notify contacts
-- about escalations or to initiate proactive customer support.
[$sel:proactiveEngagementStatus:Subscription'] :: Subscription -> Maybe ProactiveEngagementStatus
-- | The start time of the subscription, in Unix time in seconds.
[$sel:startTime:Subscription'] :: Subscription -> Maybe POSIX
-- | The ARN (Amazon Resource Name) of the subscription.
[$sel:subscriptionArn:Subscription'] :: Subscription -> Maybe Text
-- | The length, in seconds, of the Shield Advanced subscription for the
-- account.
[$sel:timeCommitmentInSeconds:Subscription'] :: Subscription -> Maybe Natural
-- | Limits settings for your subscription.
[$sel:subscriptionLimits:Subscription'] :: Subscription -> SubscriptionLimits
-- | Create a value of Subscription with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:autoRenew:Subscription', subscription_autoRenew -
-- If ENABLED, the subscription will be automatically renewed at
-- the end of the existing subscription period.
--
-- When you initally create a subscription, AutoRenew is set to
-- ENABLED. You can change this by submitting an
-- UpdateSubscription request. If the
-- UpdateSubscription request does not included a value for
-- AutoRenew, the existing value for AutoRenew remains
-- unchanged.
--
-- $sel:endTime:Subscription', subscription_endTime - The
-- date and time your subscription will end.
--
-- $sel:limits:Subscription', subscription_limits -
-- Specifies how many protections of a given type you can create.
--
-- $sel:proactiveEngagementStatus:Subscription',
-- subscription_proactiveEngagementStatus - If ENABLED,
-- the Shield Response Team (SRT) will use email and phone to notify
-- contacts about escalations to the SRT and to initiate proactive
-- customer support.
--
-- If PENDING, you have requested proactive engagement and the
-- request is pending. The status changes to ENABLED when your
-- request is fully processed.
--
-- If DISABLED, the SRT will not proactively notify contacts
-- about escalations or to initiate proactive customer support.
--
-- $sel:startTime:Subscription', subscription_startTime -
-- The start time of the subscription, in Unix time in seconds.
--
-- $sel:subscriptionArn:Subscription',
-- subscription_subscriptionArn - The ARN (Amazon Resource Name)
-- of the subscription.
--
-- $sel:timeCommitmentInSeconds:Subscription',
-- subscription_timeCommitmentInSeconds - The length, in seconds,
-- of the Shield Advanced subscription for the account.
--
-- $sel:subscriptionLimits:Subscription',
-- subscription_subscriptionLimits - Limits settings for your
-- subscription.
newSubscription :: SubscriptionLimits -> Subscription
-- | If ENABLED, the subscription will be automatically renewed at
-- the end of the existing subscription period.
--
-- When you initally create a subscription, AutoRenew is set to
-- ENABLED. You can change this by submitting an
-- UpdateSubscription request. If the
-- UpdateSubscription request does not included a value for
-- AutoRenew, the existing value for AutoRenew remains
-- unchanged.
subscription_autoRenew :: Lens' Subscription (Maybe AutoRenew)
-- | The date and time your subscription will end.
subscription_endTime :: Lens' Subscription (Maybe UTCTime)
-- | Specifies how many protections of a given type you can create.
subscription_limits :: Lens' Subscription (Maybe [Limit])
-- | If ENABLED, the Shield Response Team (SRT) will use email and
-- phone to notify contacts about escalations to the SRT and to initiate
-- proactive customer support.
--
-- If PENDING, you have requested proactive engagement and the
-- request is pending. The status changes to ENABLED when your
-- request is fully processed.
--
-- If DISABLED, the SRT will not proactively notify contacts
-- about escalations or to initiate proactive customer support.
subscription_proactiveEngagementStatus :: Lens' Subscription (Maybe ProactiveEngagementStatus)
-- | The start time of the subscription, in Unix time in seconds.
subscription_startTime :: Lens' Subscription (Maybe UTCTime)
-- | The ARN (Amazon Resource Name) of the subscription.
subscription_subscriptionArn :: Lens' Subscription (Maybe Text)
-- | The length, in seconds, of the Shield Advanced subscription for the
-- account.
subscription_timeCommitmentInSeconds :: Lens' Subscription (Maybe Natural)
-- | Limits settings for your subscription.
subscription_subscriptionLimits :: Lens' Subscription SubscriptionLimits
instance GHC.Generics.Generic Amazonka.Shield.Types.Subscription.Subscription
instance GHC.Show.Show Amazonka.Shield.Types.Subscription.Subscription
instance GHC.Read.Read Amazonka.Shield.Types.Subscription.Subscription
instance GHC.Classes.Eq Amazonka.Shield.Types.Subscription.Subscription
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.Subscription.Subscription
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.Subscription.Subscription
instance Control.DeepSeq.NFData Amazonka.Shield.Types.Subscription.Subscription
module Amazonka.Shield.Types.SubscriptionState
newtype SubscriptionState
SubscriptionState' :: Text -> SubscriptionState
[fromSubscriptionState] :: SubscriptionState -> Text
pattern SubscriptionState_ACTIVE :: SubscriptionState
pattern SubscriptionState_INACTIVE :: SubscriptionState
instance Amazonka.Data.XML.ToXML Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Amazonka.Data.XML.FromXML Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Amazonka.Data.Headers.ToHeader Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Amazonka.Data.Log.ToLog Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Amazonka.Data.ByteString.ToByteString Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Amazonka.Data.Text.ToText Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Amazonka.Data.Text.FromText Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Control.DeepSeq.NFData Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance GHC.Generics.Generic Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance GHC.Classes.Ord Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance GHC.Classes.Eq Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance GHC.Read.Read Amazonka.Shield.Types.SubscriptionState.SubscriptionState
instance GHC.Show.Show Amazonka.Shield.Types.SubscriptionState.SubscriptionState
module Amazonka.Shield.Types.SummarizedCounter
-- | The counter that describes a DDoS attack.
--
-- See: newSummarizedCounter smart constructor.
data SummarizedCounter
SummarizedCounter' :: Maybe Double -> Maybe Double -> Maybe Int -> Maybe Text -> Maybe Double -> Maybe Text -> SummarizedCounter
-- | The average value of the counter for a specified time period.
[$sel:average:SummarizedCounter'] :: SummarizedCounter -> Maybe Double
-- | The maximum value of the counter for a specified time period.
[$sel:max:SummarizedCounter'] :: SummarizedCounter -> Maybe Double
-- | The number of counters for a specified time period.
[$sel:n:SummarizedCounter'] :: SummarizedCounter -> Maybe Int
-- | The counter name.
[$sel:name:SummarizedCounter'] :: SummarizedCounter -> Maybe Text
-- | The total of counter values for a specified time period.
[$sel:sum:SummarizedCounter'] :: SummarizedCounter -> Maybe Double
-- | The unit of the counters.
[$sel:unit:SummarizedCounter'] :: SummarizedCounter -> Maybe Text
-- | Create a value of SummarizedCounter with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:average:SummarizedCounter',
-- summarizedCounter_average - The average value of the counter
-- for a specified time period.
--
-- $sel:max:SummarizedCounter', summarizedCounter_max - The
-- maximum value of the counter for a specified time period.
--
-- $sel:n:SummarizedCounter', summarizedCounter_n - The
-- number of counters for a specified time period.
--
-- $sel:name:SummarizedCounter', summarizedCounter_name -
-- The counter name.
--
-- $sel:sum:SummarizedCounter', summarizedCounter_sum - The
-- total of counter values for a specified time period.
--
-- $sel:unit:SummarizedCounter', summarizedCounter_unit -
-- The unit of the counters.
newSummarizedCounter :: SummarizedCounter
-- | The average value of the counter for a specified time period.
summarizedCounter_average :: Lens' SummarizedCounter (Maybe Double)
-- | The maximum value of the counter for a specified time period.
summarizedCounter_max :: Lens' SummarizedCounter (Maybe Double)
-- | The number of counters for a specified time period.
summarizedCounter_n :: Lens' SummarizedCounter (Maybe Int)
-- | The counter name.
summarizedCounter_name :: Lens' SummarizedCounter (Maybe Text)
-- | The total of counter values for a specified time period.
summarizedCounter_sum :: Lens' SummarizedCounter (Maybe Double)
-- | The unit of the counters.
summarizedCounter_unit :: Lens' SummarizedCounter (Maybe Text)
instance GHC.Generics.Generic Amazonka.Shield.Types.SummarizedCounter.SummarizedCounter
instance GHC.Show.Show Amazonka.Shield.Types.SummarizedCounter.SummarizedCounter
instance GHC.Read.Read Amazonka.Shield.Types.SummarizedCounter.SummarizedCounter
instance GHC.Classes.Eq Amazonka.Shield.Types.SummarizedCounter.SummarizedCounter
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.SummarizedCounter.SummarizedCounter
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.SummarizedCounter.SummarizedCounter
instance Control.DeepSeq.NFData Amazonka.Shield.Types.SummarizedCounter.SummarizedCounter
module Amazonka.Shield.Types.SummarizedAttackVector
-- | A summary of information about the attack.
--
-- See: newSummarizedAttackVector smart constructor.
data SummarizedAttackVector
SummarizedAttackVector' :: Maybe [SummarizedCounter] -> Text -> SummarizedAttackVector
-- | The list of counters that describe the details of the attack.
[$sel:vectorCounters:SummarizedAttackVector'] :: SummarizedAttackVector -> Maybe [SummarizedCounter]
-- | The attack type, for example, SNMP reflection or SYN flood.
[$sel:vectorType:SummarizedAttackVector'] :: SummarizedAttackVector -> Text
-- | Create a value of SummarizedAttackVector with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:vectorCounters:SummarizedAttackVector',
-- summarizedAttackVector_vectorCounters - The list of counters
-- that describe the details of the attack.
--
-- $sel:vectorType:SummarizedAttackVector',
-- summarizedAttackVector_vectorType - The attack type, for
-- example, SNMP reflection or SYN flood.
newSummarizedAttackVector :: Text -> SummarizedAttackVector
-- | The list of counters that describe the details of the attack.
summarizedAttackVector_vectorCounters :: Lens' SummarizedAttackVector (Maybe [SummarizedCounter])
-- | The attack type, for example, SNMP reflection or SYN flood.
summarizedAttackVector_vectorType :: Lens' SummarizedAttackVector Text
instance GHC.Generics.Generic Amazonka.Shield.Types.SummarizedAttackVector.SummarizedAttackVector
instance GHC.Show.Show Amazonka.Shield.Types.SummarizedAttackVector.SummarizedAttackVector
instance GHC.Read.Read Amazonka.Shield.Types.SummarizedAttackVector.SummarizedAttackVector
instance GHC.Classes.Eq Amazonka.Shield.Types.SummarizedAttackVector.SummarizedAttackVector
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.SummarizedAttackVector.SummarizedAttackVector
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.SummarizedAttackVector.SummarizedAttackVector
instance Control.DeepSeq.NFData Amazonka.Shield.Types.SummarizedAttackVector.SummarizedAttackVector
module Amazonka.Shield.Types.SubResourceSummary
-- | The attack information for the specified SubResource.
--
-- See: newSubResourceSummary smart constructor.
data SubResourceSummary
SubResourceSummary' :: Maybe [SummarizedAttackVector] -> Maybe [SummarizedCounter] -> Maybe Text -> Maybe SubResourceType -> SubResourceSummary
-- | The list of attack types and associated counters.
[$sel:attackVectors:SubResourceSummary'] :: SubResourceSummary -> Maybe [SummarizedAttackVector]
-- | The counters that describe the details of the attack.
[$sel:counters:SubResourceSummary'] :: SubResourceSummary -> Maybe [SummarizedCounter]
-- | The unique identifier (ID) of the SubResource.
[$sel:id:SubResourceSummary'] :: SubResourceSummary -> Maybe Text
-- | The SubResource type.
[$sel:type':SubResourceSummary'] :: SubResourceSummary -> Maybe SubResourceType
-- | Create a value of SubResourceSummary with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackVectors:SubResourceSummary',
-- subResourceSummary_attackVectors - The list of attack types and
-- associated counters.
--
-- $sel:counters:SubResourceSummary',
-- subResourceSummary_counters - The counters that describe the
-- details of the attack.
--
-- $sel:id:SubResourceSummary', subResourceSummary_id - The
-- unique identifier (ID) of the SubResource.
--
-- $sel:type':SubResourceSummary', subResourceSummary_type
-- - The SubResource type.
newSubResourceSummary :: SubResourceSummary
-- | The list of attack types and associated counters.
subResourceSummary_attackVectors :: Lens' SubResourceSummary (Maybe [SummarizedAttackVector])
-- | The counters that describe the details of the attack.
subResourceSummary_counters :: Lens' SubResourceSummary (Maybe [SummarizedCounter])
-- | The unique identifier (ID) of the SubResource.
subResourceSummary_id :: Lens' SubResourceSummary (Maybe Text)
-- | The SubResource type.
subResourceSummary_type :: Lens' SubResourceSummary (Maybe SubResourceType)
instance GHC.Generics.Generic Amazonka.Shield.Types.SubResourceSummary.SubResourceSummary
instance GHC.Show.Show Amazonka.Shield.Types.SubResourceSummary.SubResourceSummary
instance GHC.Read.Read Amazonka.Shield.Types.SubResourceSummary.SubResourceSummary
instance GHC.Classes.Eq Amazonka.Shield.Types.SubResourceSummary.SubResourceSummary
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.SubResourceSummary.SubResourceSummary
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.SubResourceSummary.SubResourceSummary
instance Control.DeepSeq.NFData Amazonka.Shield.Types.SubResourceSummary.SubResourceSummary
module Amazonka.Shield.Types.Tag
-- | A tag associated with an Amazon Web Services resource. Tags are
-- key:value pairs that you can use to categorize and manage your
-- resources, for purposes like billing or other management. Typically,
-- the tag key represents a category, such as "environment", and the tag
-- value represents a specific value within that category, such as
-- "test," "development," or "production". Or you might set the tag key
-- to "customer" and the value to the customer name or ID. You can
-- specify one or more tags to add to each Amazon Web Services resource,
-- up to 50 tags for a resource.
--
-- See: newTag smart constructor.
data Tag
Tag' :: Maybe Text -> Maybe Text -> Tag
-- | Part of the key:value pair that defines a tag. You can use a tag key
-- to describe a category of information, such as "customer." Tag keys
-- are case-sensitive.
[$sel:key:Tag'] :: Tag -> Maybe Text
-- | Part of the key:value pair that defines a tag. You can use a tag value
-- to describe a specific value within a category, such as "companyA" or
-- "companyB." Tag values are case-sensitive.
[$sel:value:Tag'] :: Tag -> Maybe Text
-- | Create a value of Tag with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:key:Tag', tag_key - Part of the key:value pair that
-- defines a tag. You can use a tag key to describe a category of
-- information, such as "customer." Tag keys are case-sensitive.
--
-- $sel:value:Tag', tag_value - Part of the key:value pair
-- that defines a tag. You can use a tag value to describe a specific
-- value within a category, such as "companyA" or "companyB." Tag values
-- are case-sensitive.
newTag :: Tag
-- | Part of the key:value pair that defines a tag. You can use a tag key
-- to describe a category of information, such as "customer." Tag keys
-- are case-sensitive.
tag_key :: Lens' Tag (Maybe Text)
-- | Part of the key:value pair that defines a tag. You can use a tag value
-- to describe a specific value within a category, such as "companyA" or
-- "companyB." Tag values are case-sensitive.
tag_value :: Lens' Tag (Maybe Text)
instance GHC.Generics.Generic Amazonka.Shield.Types.Tag.Tag
instance GHC.Show.Show Amazonka.Shield.Types.Tag.Tag
instance GHC.Read.Read Amazonka.Shield.Types.Tag.Tag
instance GHC.Classes.Eq Amazonka.Shield.Types.Tag.Tag
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.Tag.Tag
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.Tag.Tag
instance Control.DeepSeq.NFData Amazonka.Shield.Types.Tag.Tag
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.Tag.Tag
module Amazonka.Shield.Types.TimeRange
-- | The time range.
--
-- See: newTimeRange smart constructor.
data TimeRange
TimeRange' :: Maybe POSIX -> Maybe POSIX -> TimeRange
-- | The start time, in Unix time in seconds.
[$sel:fromInclusive:TimeRange'] :: TimeRange -> Maybe POSIX
-- | The end time, in Unix time in seconds.
[$sel:toExclusive:TimeRange'] :: TimeRange -> Maybe POSIX
-- | Create a value of TimeRange with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:fromInclusive:TimeRange', timeRange_fromInclusive -
-- The start time, in Unix time in seconds.
--
-- $sel:toExclusive:TimeRange', timeRange_toExclusive - The
-- end time, in Unix time in seconds.
newTimeRange :: TimeRange
-- | The start time, in Unix time in seconds.
timeRange_fromInclusive :: Lens' TimeRange (Maybe UTCTime)
-- | The end time, in Unix time in seconds.
timeRange_toExclusive :: Lens' TimeRange (Maybe UTCTime)
instance GHC.Generics.Generic Amazonka.Shield.Types.TimeRange.TimeRange
instance GHC.Show.Show Amazonka.Shield.Types.TimeRange.TimeRange
instance GHC.Read.Read Amazonka.Shield.Types.TimeRange.TimeRange
instance GHC.Classes.Eq Amazonka.Shield.Types.TimeRange.TimeRange
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.TimeRange.TimeRange
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.TimeRange.TimeRange
instance Control.DeepSeq.NFData Amazonka.Shield.Types.TimeRange.TimeRange
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.TimeRange.TimeRange
module Amazonka.Shield.Types.Unit
newtype Unit
Unit' :: Text -> Unit
[fromUnit] :: Unit -> Text
pattern Unit_BITS :: Unit
pattern Unit_BYTES :: Unit
pattern Unit_PACKETS :: Unit
pattern Unit_REQUESTS :: Unit
instance Amazonka.Data.XML.ToXML Amazonka.Shield.Types.Unit.Unit
instance Amazonka.Data.XML.FromXML Amazonka.Shield.Types.Unit.Unit
instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Shield.Types.Unit.Unit
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.Types.Unit.Unit
instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Shield.Types.Unit.Unit
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.Unit.Unit
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.Types.Unit.Unit
instance Amazonka.Data.Headers.ToHeader Amazonka.Shield.Types.Unit.Unit
instance Amazonka.Data.Log.ToLog Amazonka.Shield.Types.Unit.Unit
instance Amazonka.Data.ByteString.ToByteString Amazonka.Shield.Types.Unit.Unit
instance Amazonka.Data.Text.ToText Amazonka.Shield.Types.Unit.Unit
instance Amazonka.Data.Text.FromText Amazonka.Shield.Types.Unit.Unit
instance Control.DeepSeq.NFData Amazonka.Shield.Types.Unit.Unit
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.Unit.Unit
instance GHC.Generics.Generic Amazonka.Shield.Types.Unit.Unit
instance GHC.Classes.Ord Amazonka.Shield.Types.Unit.Unit
instance GHC.Classes.Eq Amazonka.Shield.Types.Unit.Unit
instance GHC.Read.Read Amazonka.Shield.Types.Unit.Unit
instance GHC.Show.Show Amazonka.Shield.Types.Unit.Unit
module Amazonka.Shield.Types.AttackProperty
-- | Details of a Shield event. This is provided as part of an
-- AttackDetail.
--
-- See: newAttackProperty smart constructor.
data AttackProperty
AttackProperty' :: Maybe AttackLayer -> Maybe AttackPropertyIdentifier -> Maybe [Contributor] -> Maybe Integer -> Maybe Unit -> AttackProperty
-- | The type of Shield event that was observed. NETWORK indicates
-- layer 3 and layer 4 events and APPLICATION indicates layer 7
-- events.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
[$sel:attackLayer:AttackProperty'] :: AttackProperty -> Maybe AttackLayer
-- | Defines the Shield event property information that is provided. The
-- WORDPRESS_PINGBACK_REFLECTOR and
-- WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress
-- reflective pingback events.
[$sel:attackPropertyIdentifier:AttackProperty'] :: AttackProperty -> Maybe AttackPropertyIdentifier
-- | Contributor objects for the top five contributors to a Shield event. A
-- contributor is a source of traffic that Shield Advanced identifies as
-- responsible for some or all of an event.
[$sel:topContributors:AttackProperty'] :: AttackProperty -> Maybe [Contributor]
-- | The total contributions made to this Shield event by all contributors.
[$sel:total:AttackProperty'] :: AttackProperty -> Maybe Integer
-- | The unit used for the Contributor Value property.
[$sel:unit:AttackProperty'] :: AttackProperty -> Maybe Unit
-- | Create a value of AttackProperty with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackLayer:AttackProperty',
-- attackProperty_attackLayer - The type of Shield event that was
-- observed. NETWORK indicates layer 3 and layer 4 events and
-- APPLICATION indicates layer 7 events.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
--
-- $sel:attackPropertyIdentifier:AttackProperty',
-- attackProperty_attackPropertyIdentifier - Defines the Shield
-- event property information that is provided. The
-- WORDPRESS_PINGBACK_REFLECTOR and
-- WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress
-- reflective pingback events.
--
-- $sel:topContributors:AttackProperty',
-- attackProperty_topContributors - Contributor objects for the
-- top five contributors to a Shield event. A contributor is a source of
-- traffic that Shield Advanced identifies as responsible for some or all
-- of an event.
--
-- $sel:total:AttackProperty', attackProperty_total - The
-- total contributions made to this Shield event by all contributors.
--
-- $sel:unit:AttackProperty', attackProperty_unit - The
-- unit used for the Contributor Value property.
newAttackProperty :: AttackProperty
-- | The type of Shield event that was observed. NETWORK indicates
-- layer 3 and layer 4 events and APPLICATION indicates layer 7
-- events.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
attackProperty_attackLayer :: Lens' AttackProperty (Maybe AttackLayer)
-- | Defines the Shield event property information that is provided. The
-- WORDPRESS_PINGBACK_REFLECTOR and
-- WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress
-- reflective pingback events.
attackProperty_attackPropertyIdentifier :: Lens' AttackProperty (Maybe AttackPropertyIdentifier)
-- | Contributor objects for the top five contributors to a Shield event. A
-- contributor is a source of traffic that Shield Advanced identifies as
-- responsible for some or all of an event.
attackProperty_topContributors :: Lens' AttackProperty (Maybe [Contributor])
-- | The total contributions made to this Shield event by all contributors.
attackProperty_total :: Lens' AttackProperty (Maybe Integer)
-- | The unit used for the Contributor Value property.
attackProperty_unit :: Lens' AttackProperty (Maybe Unit)
instance GHC.Generics.Generic Amazonka.Shield.Types.AttackProperty.AttackProperty
instance GHC.Show.Show Amazonka.Shield.Types.AttackProperty.AttackProperty
instance GHC.Read.Read Amazonka.Shield.Types.AttackProperty.AttackProperty
instance GHC.Classes.Eq Amazonka.Shield.Types.AttackProperty.AttackProperty
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.AttackProperty.AttackProperty
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.AttackProperty.AttackProperty
instance Control.DeepSeq.NFData Amazonka.Shield.Types.AttackProperty.AttackProperty
module Amazonka.Shield.Types.AttackDetail
-- | The details of a DDoS attack.
--
-- See: newAttackDetail smart constructor.
data AttackDetail
AttackDetail' :: Maybe [SummarizedCounter] -> Maybe Text -> Maybe [AttackProperty] -> Maybe POSIX -> Maybe [Mitigation] -> Maybe Text -> Maybe POSIX -> Maybe [SubResourceSummary] -> AttackDetail
-- | List of counters that describe the attack for the specified time
-- period.
[$sel:attackCounters:AttackDetail'] :: AttackDetail -> Maybe [SummarizedCounter]
-- | The unique identifier (ID) of the attack.
[$sel:attackId:AttackDetail'] :: AttackDetail -> Maybe Text
-- | The array of objects that provide details of the Shield event.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
[$sel:attackProperties:AttackDetail'] :: AttackDetail -> Maybe [AttackProperty]
-- | The time the attack ended, in Unix time in seconds.
[$sel:endTime:AttackDetail'] :: AttackDetail -> Maybe POSIX
-- | List of mitigation actions taken for the attack.
[$sel:mitigations:AttackDetail'] :: AttackDetail -> Maybe [Mitigation]
-- | The ARN (Amazon Resource Name) of the resource that was attacked.
[$sel:resourceArn:AttackDetail'] :: AttackDetail -> Maybe Text
-- | The time the attack started, in Unix time in seconds.
[$sel:startTime:AttackDetail'] :: AttackDetail -> Maybe POSIX
-- | If applicable, additional detail about the resource being attacked,
-- for example, IP address or URL.
[$sel:subResources:AttackDetail'] :: AttackDetail -> Maybe [SubResourceSummary]
-- | Create a value of AttackDetail with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackCounters:AttackDetail',
-- attackDetail_attackCounters - List of counters that describe
-- the attack for the specified time period.
--
-- $sel:attackId:AttackDetail', attackDetail_attackId - The
-- unique identifier (ID) of the attack.
--
-- $sel:attackProperties:AttackDetail',
-- attackDetail_attackProperties - The array of objects that
-- provide details of the Shield event.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
--
-- $sel:endTime:AttackDetail', attackDetail_endTime - The
-- time the attack ended, in Unix time in seconds.
--
-- $sel:mitigations:AttackDetail', attackDetail_mitigations
-- - List of mitigation actions taken for the attack.
--
-- $sel:resourceArn:AttackDetail', attackDetail_resourceArn
-- - The ARN (Amazon Resource Name) of the resource that was attacked.
--
-- $sel:startTime:AttackDetail', attackDetail_startTime -
-- The time the attack started, in Unix time in seconds.
--
-- $sel:subResources:AttackDetail',
-- attackDetail_subResources - If applicable, additional detail
-- about the resource being attacked, for example, IP address or URL.
newAttackDetail :: AttackDetail
-- | List of counters that describe the attack for the specified time
-- period.
attackDetail_attackCounters :: Lens' AttackDetail (Maybe [SummarizedCounter])
-- | The unique identifier (ID) of the attack.
attackDetail_attackId :: Lens' AttackDetail (Maybe Text)
-- | The array of objects that provide details of the Shield event.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
attackDetail_attackProperties :: Lens' AttackDetail (Maybe [AttackProperty])
-- | The time the attack ended, in Unix time in seconds.
attackDetail_endTime :: Lens' AttackDetail (Maybe UTCTime)
-- | List of mitigation actions taken for the attack.
attackDetail_mitigations :: Lens' AttackDetail (Maybe [Mitigation])
-- | The ARN (Amazon Resource Name) of the resource that was attacked.
attackDetail_resourceArn :: Lens' AttackDetail (Maybe Text)
-- | The time the attack started, in Unix time in seconds.
attackDetail_startTime :: Lens' AttackDetail (Maybe UTCTime)
-- | If applicable, additional detail about the resource being attacked,
-- for example, IP address or URL.
attackDetail_subResources :: Lens' AttackDetail (Maybe [SubResourceSummary])
instance GHC.Generics.Generic Amazonka.Shield.Types.AttackDetail.AttackDetail
instance GHC.Show.Show Amazonka.Shield.Types.AttackDetail.AttackDetail
instance GHC.Read.Read Amazonka.Shield.Types.AttackDetail.AttackDetail
instance GHC.Classes.Eq Amazonka.Shield.Types.AttackDetail.AttackDetail
instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Shield.Types.AttackDetail.AttackDetail
instance Data.Hashable.Class.Hashable Amazonka.Shield.Types.AttackDetail.AttackDetail
instance Control.DeepSeq.NFData Amazonka.Shield.Types.AttackDetail.AttackDetail
module Amazonka.Shield.Types
-- | API version 2016-06-02 of the Amazon Shield SDK
-- configuration.
defaultService :: Service
-- | Exception that indicates the specified AttackId does not
-- exist, or the requester does not have the appropriate permissions to
-- access the AttackId.
_AccessDeniedException :: AsError a => Fold a ServiceError
-- | 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
-- Granting a User Permissions to Pass a Role to an Amazon Web
-- Services Service.
_AccessDeniedForDependencyException :: AsError a => Fold a ServiceError
-- | Exception that indicates that a problem occurred with the service
-- infrastructure. You can retry the request.
_InternalErrorException :: AsError a => Fold a ServiceError
-- | Exception that indicates that the operation would not cause any change
-- to occur.
_InvalidOperationException :: AsError a => Fold a ServiceError
-- | 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 :: AsError a => Fold a ServiceError
-- | Exception that indicates that the parameters passed to the API are
-- invalid. If available, this exception includes details in additional
-- properties.
_InvalidParameterException :: AsError a => Fold a ServiceError
-- | Exception that indicates that the resource is invalid. You might not
-- have access to the resource, or the resource might not exist.
_InvalidResourceException :: AsError a => Fold a ServiceError
-- | Exception that indicates that the operation would exceed a limit.
_LimitsExceededException :: AsError a => Fold a ServiceError
-- | 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 :: AsError a => Fold a ServiceError
-- | The ARN of the role that you specified does not exist.
_NoAssociatedRoleException :: AsError a => Fold a ServiceError
-- | Exception that indicates that the resource state has been modified by
-- another client. Retrieve the resource and then retry your request.
_OptimisticLockException :: AsError a => Fold a ServiceError
-- | Exception indicating the specified resource already exists. If
-- available, this exception includes details in additional properties.
_ResourceAlreadyExistsException :: AsError a => Fold a ServiceError
-- | Exception indicating the specified resource does not exist. If
-- available, this exception includes details in additional properties.
_ResourceNotFoundException :: AsError a => Fold a ServiceError
newtype ApplicationLayerAutomaticResponseStatus
ApplicationLayerAutomaticResponseStatus' :: Text -> ApplicationLayerAutomaticResponseStatus
[fromApplicationLayerAutomaticResponseStatus] :: ApplicationLayerAutomaticResponseStatus -> Text
pattern ApplicationLayerAutomaticResponseStatus_DISABLED :: ApplicationLayerAutomaticResponseStatus
pattern ApplicationLayerAutomaticResponseStatus_ENABLED :: ApplicationLayerAutomaticResponseStatus
newtype AttackLayer
AttackLayer' :: Text -> AttackLayer
[fromAttackLayer] :: AttackLayer -> Text
pattern AttackLayer_APPLICATION :: AttackLayer
pattern AttackLayer_NETWORK :: AttackLayer
newtype AttackPropertyIdentifier
AttackPropertyIdentifier' :: Text -> AttackPropertyIdentifier
[fromAttackPropertyIdentifier] :: AttackPropertyIdentifier -> Text
pattern AttackPropertyIdentifier_DESTINATION_URL :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_REFERRER :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_ASN :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_COUNTRY :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_IP_ADDRESS :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_USER_AGENT :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_WORDPRESS_PINGBACK_REFLECTOR :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_WORDPRESS_PINGBACK_SOURCE :: AttackPropertyIdentifier
newtype AutoRenew
AutoRenew' :: Text -> AutoRenew
[fromAutoRenew] :: AutoRenew -> Text
pattern AutoRenew_DISABLED :: AutoRenew
pattern AutoRenew_ENABLED :: AutoRenew
newtype ProactiveEngagementStatus
ProactiveEngagementStatus' :: Text -> ProactiveEngagementStatus
[fromProactiveEngagementStatus] :: ProactiveEngagementStatus -> Text
pattern ProactiveEngagementStatus_DISABLED :: ProactiveEngagementStatus
pattern ProactiveEngagementStatus_ENABLED :: ProactiveEngagementStatus
pattern ProactiveEngagementStatus_PENDING :: ProactiveEngagementStatus
newtype ProtectedResourceType
ProtectedResourceType' :: Text -> ProtectedResourceType
[fromProtectedResourceType] :: ProtectedResourceType -> Text
pattern ProtectedResourceType_APPLICATION_LOAD_BALANCER :: ProtectedResourceType
pattern ProtectedResourceType_CLASSIC_LOAD_BALANCER :: ProtectedResourceType
pattern ProtectedResourceType_CLOUDFRONT_DISTRIBUTION :: ProtectedResourceType
pattern ProtectedResourceType_ELASTIC_IP_ALLOCATION :: ProtectedResourceType
pattern ProtectedResourceType_GLOBAL_ACCELERATOR :: ProtectedResourceType
pattern ProtectedResourceType_ROUTE_53_HOSTED_ZONE :: ProtectedResourceType
newtype ProtectionGroupAggregation
ProtectionGroupAggregation' :: Text -> ProtectionGroupAggregation
[fromProtectionGroupAggregation] :: ProtectionGroupAggregation -> Text
pattern ProtectionGroupAggregation_MAX :: ProtectionGroupAggregation
pattern ProtectionGroupAggregation_MEAN :: ProtectionGroupAggregation
pattern ProtectionGroupAggregation_SUM :: ProtectionGroupAggregation
newtype ProtectionGroupPattern
ProtectionGroupPattern' :: Text -> ProtectionGroupPattern
[fromProtectionGroupPattern] :: ProtectionGroupPattern -> Text
pattern ProtectionGroupPattern_ALL :: ProtectionGroupPattern
pattern ProtectionGroupPattern_ARBITRARY :: ProtectionGroupPattern
pattern ProtectionGroupPattern_BY_RESOURCE_TYPE :: ProtectionGroupPattern
newtype SubResourceType
SubResourceType' :: Text -> SubResourceType
[fromSubResourceType] :: SubResourceType -> Text
pattern SubResourceType_IP :: SubResourceType
pattern SubResourceType_URL :: SubResourceType
newtype SubscriptionState
SubscriptionState' :: Text -> SubscriptionState
[fromSubscriptionState] :: SubscriptionState -> Text
pattern SubscriptionState_ACTIVE :: SubscriptionState
pattern SubscriptionState_INACTIVE :: SubscriptionState
newtype Unit
Unit' :: Text -> Unit
[fromUnit] :: Unit -> Text
pattern Unit_BITS :: Unit
pattern Unit_BYTES :: Unit
pattern Unit_PACKETS :: Unit
pattern Unit_REQUESTS :: Unit
-- | The automatic application layer DDoS mitigation settings for a
-- Protection. This configuration determines whether Shield Advanced
-- automatically manages rules in the web ACL in order to respond to
-- application layer events that Shield Advanced determines to be DDoS
-- attacks.
--
-- See: newApplicationLayerAutomaticResponseConfiguration
-- smart constructor.
data ApplicationLayerAutomaticResponseConfiguration
ApplicationLayerAutomaticResponseConfiguration' :: ApplicationLayerAutomaticResponseStatus -> ResponseAction -> ApplicationLayerAutomaticResponseConfiguration
-- | Indicates whether automatic application layer DDoS mitigation is
-- enabled for the protection.
[$sel:status:ApplicationLayerAutomaticResponseConfiguration'] :: ApplicationLayerAutomaticResponseConfiguration -> ApplicationLayerAutomaticResponseStatus
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
[$sel:action:ApplicationLayerAutomaticResponseConfiguration'] :: ApplicationLayerAutomaticResponseConfiguration -> ResponseAction
-- | Create a value of
-- ApplicationLayerAutomaticResponseConfiguration with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:status:ApplicationLayerAutomaticResponseConfiguration',
-- applicationLayerAutomaticResponseConfiguration_status -
-- Indicates whether automatic application layer DDoS mitigation is
-- enabled for the protection.
--
-- $sel:action:ApplicationLayerAutomaticResponseConfiguration',
-- applicationLayerAutomaticResponseConfiguration_action -
-- Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
newApplicationLayerAutomaticResponseConfiguration :: ApplicationLayerAutomaticResponseStatus -> ResponseAction -> ApplicationLayerAutomaticResponseConfiguration
-- | Indicates whether automatic application layer DDoS mitigation is
-- enabled for the protection.
applicationLayerAutomaticResponseConfiguration_status :: Lens' ApplicationLayerAutomaticResponseConfiguration ApplicationLayerAutomaticResponseStatus
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
applicationLayerAutomaticResponseConfiguration_action :: Lens' ApplicationLayerAutomaticResponseConfiguration ResponseAction
-- | The details of a DDoS attack.
--
-- See: newAttackDetail smart constructor.
data AttackDetail
AttackDetail' :: Maybe [SummarizedCounter] -> Maybe Text -> Maybe [AttackProperty] -> Maybe POSIX -> Maybe [Mitigation] -> Maybe Text -> Maybe POSIX -> Maybe [SubResourceSummary] -> AttackDetail
-- | List of counters that describe the attack for the specified time
-- period.
[$sel:attackCounters:AttackDetail'] :: AttackDetail -> Maybe [SummarizedCounter]
-- | The unique identifier (ID) of the attack.
[$sel:attackId:AttackDetail'] :: AttackDetail -> Maybe Text
-- | The array of objects that provide details of the Shield event.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
[$sel:attackProperties:AttackDetail'] :: AttackDetail -> Maybe [AttackProperty]
-- | The time the attack ended, in Unix time in seconds.
[$sel:endTime:AttackDetail'] :: AttackDetail -> Maybe POSIX
-- | List of mitigation actions taken for the attack.
[$sel:mitigations:AttackDetail'] :: AttackDetail -> Maybe [Mitigation]
-- | The ARN (Amazon Resource Name) of the resource that was attacked.
[$sel:resourceArn:AttackDetail'] :: AttackDetail -> Maybe Text
-- | The time the attack started, in Unix time in seconds.
[$sel:startTime:AttackDetail'] :: AttackDetail -> Maybe POSIX
-- | If applicable, additional detail about the resource being attacked,
-- for example, IP address or URL.
[$sel:subResources:AttackDetail'] :: AttackDetail -> Maybe [SubResourceSummary]
-- | Create a value of AttackDetail with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackCounters:AttackDetail',
-- attackDetail_attackCounters - List of counters that describe
-- the attack for the specified time period.
--
-- $sel:attackId:AttackDetail', attackDetail_attackId - The
-- unique identifier (ID) of the attack.
--
-- $sel:attackProperties:AttackDetail',
-- attackDetail_attackProperties - The array of objects that
-- provide details of the Shield event.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
--
-- $sel:endTime:AttackDetail', attackDetail_endTime - The
-- time the attack ended, in Unix time in seconds.
--
-- $sel:mitigations:AttackDetail', attackDetail_mitigations
-- - List of mitigation actions taken for the attack.
--
-- $sel:resourceArn:AttackDetail', attackDetail_resourceArn
-- - The ARN (Amazon Resource Name) of the resource that was attacked.
--
-- $sel:startTime:AttackDetail', attackDetail_startTime -
-- The time the attack started, in Unix time in seconds.
--
-- $sel:subResources:AttackDetail',
-- attackDetail_subResources - If applicable, additional detail
-- about the resource being attacked, for example, IP address or URL.
newAttackDetail :: AttackDetail
-- | List of counters that describe the attack for the specified time
-- period.
attackDetail_attackCounters :: Lens' AttackDetail (Maybe [SummarizedCounter])
-- | The unique identifier (ID) of the attack.
attackDetail_attackId :: Lens' AttackDetail (Maybe Text)
-- | The array of objects that provide details of the Shield event.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
attackDetail_attackProperties :: Lens' AttackDetail (Maybe [AttackProperty])
-- | The time the attack ended, in Unix time in seconds.
attackDetail_endTime :: Lens' AttackDetail (Maybe UTCTime)
-- | List of mitigation actions taken for the attack.
attackDetail_mitigations :: Lens' AttackDetail (Maybe [Mitigation])
-- | The ARN (Amazon Resource Name) of the resource that was attacked.
attackDetail_resourceArn :: Lens' AttackDetail (Maybe Text)
-- | The time the attack started, in Unix time in seconds.
attackDetail_startTime :: Lens' AttackDetail (Maybe UTCTime)
-- | If applicable, additional detail about the resource being attacked,
-- for example, IP address or URL.
attackDetail_subResources :: Lens' AttackDetail (Maybe [SubResourceSummary])
-- | Details of a Shield event. This is provided as part of an
-- AttackDetail.
--
-- See: newAttackProperty smart constructor.
data AttackProperty
AttackProperty' :: Maybe AttackLayer -> Maybe AttackPropertyIdentifier -> Maybe [Contributor] -> Maybe Integer -> Maybe Unit -> AttackProperty
-- | The type of Shield event that was observed. NETWORK indicates
-- layer 3 and layer 4 events and APPLICATION indicates layer 7
-- events.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
[$sel:attackLayer:AttackProperty'] :: AttackProperty -> Maybe AttackLayer
-- | Defines the Shield event property information that is provided. The
-- WORDPRESS_PINGBACK_REFLECTOR and
-- WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress
-- reflective pingback events.
[$sel:attackPropertyIdentifier:AttackProperty'] :: AttackProperty -> Maybe AttackPropertyIdentifier
-- | Contributor objects for the top five contributors to a Shield event. A
-- contributor is a source of traffic that Shield Advanced identifies as
-- responsible for some or all of an event.
[$sel:topContributors:AttackProperty'] :: AttackProperty -> Maybe [Contributor]
-- | The total contributions made to this Shield event by all contributors.
[$sel:total:AttackProperty'] :: AttackProperty -> Maybe Integer
-- | The unit used for the Contributor Value property.
[$sel:unit:AttackProperty'] :: AttackProperty -> Maybe Unit
-- | Create a value of AttackProperty with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackLayer:AttackProperty',
-- attackProperty_attackLayer - The type of Shield event that was
-- observed. NETWORK indicates layer 3 and layer 4 events and
-- APPLICATION indicates layer 7 events.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
--
-- $sel:attackPropertyIdentifier:AttackProperty',
-- attackProperty_attackPropertyIdentifier - Defines the Shield
-- event property information that is provided. The
-- WORDPRESS_PINGBACK_REFLECTOR and
-- WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress
-- reflective pingback events.
--
-- $sel:topContributors:AttackProperty',
-- attackProperty_topContributors - Contributor objects for the
-- top five contributors to a Shield event. A contributor is a source of
-- traffic that Shield Advanced identifies as responsible for some or all
-- of an event.
--
-- $sel:total:AttackProperty', attackProperty_total - The
-- total contributions made to this Shield event by all contributors.
--
-- $sel:unit:AttackProperty', attackProperty_unit - The
-- unit used for the Contributor Value property.
newAttackProperty :: AttackProperty
-- | The type of Shield event that was observed. NETWORK indicates
-- layer 3 and layer 4 events and APPLICATION indicates layer 7
-- events.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
attackProperty_attackLayer :: Lens' AttackProperty (Maybe AttackLayer)
-- | Defines the Shield event property information that is provided. The
-- WORDPRESS_PINGBACK_REFLECTOR and
-- WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress
-- reflective pingback events.
attackProperty_attackPropertyIdentifier :: Lens' AttackProperty (Maybe AttackPropertyIdentifier)
-- | Contributor objects for the top five contributors to a Shield event. A
-- contributor is a source of traffic that Shield Advanced identifies as
-- responsible for some or all of an event.
attackProperty_topContributors :: Lens' AttackProperty (Maybe [Contributor])
-- | The total contributions made to this Shield event by all contributors.
attackProperty_total :: Lens' AttackProperty (Maybe Integer)
-- | The unit used for the Contributor Value property.
attackProperty_unit :: Lens' AttackProperty (Maybe Unit)
-- | A single attack statistics data record. This is returned by
-- DescribeAttackStatistics along with a time range indicating the time
-- period that the attack statistics apply to.
--
-- See: newAttackStatisticsDataItem smart constructor.
data AttackStatisticsDataItem
AttackStatisticsDataItem' :: Maybe AttackVolume -> Integer -> AttackStatisticsDataItem
-- | Information about the volume of attacks during the time period. If the
-- accompanying AttackCount is zero, this setting might be
-- empty.
[$sel:attackVolume:AttackStatisticsDataItem'] :: AttackStatisticsDataItem -> Maybe AttackVolume
-- | The number of attacks detected during the time period. This is always
-- present, but might be zero.
[$sel:attackCount:AttackStatisticsDataItem'] :: AttackStatisticsDataItem -> Integer
-- | Create a value of AttackStatisticsDataItem with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackVolume:AttackStatisticsDataItem',
-- attackStatisticsDataItem_attackVolume - Information about the
-- volume of attacks during the time period. If the accompanying
-- AttackCount is zero, this setting might be empty.
--
-- $sel:attackCount:AttackStatisticsDataItem',
-- attackStatisticsDataItem_attackCount - The number of attacks
-- detected during the time period. This is always present, but might be
-- zero.
newAttackStatisticsDataItem :: Integer -> AttackStatisticsDataItem
-- | Information about the volume of attacks during the time period. If the
-- accompanying AttackCount is zero, this setting might be
-- empty.
attackStatisticsDataItem_attackVolume :: Lens' AttackStatisticsDataItem (Maybe AttackVolume)
-- | The number of attacks detected during the time period. This is always
-- present, but might be zero.
attackStatisticsDataItem_attackCount :: Lens' AttackStatisticsDataItem Integer
-- | Summarizes all DDoS attacks for a specified time period.
--
-- See: newAttackSummary smart constructor.
data AttackSummary
AttackSummary' :: Maybe Text -> Maybe [AttackVectorDescription] -> Maybe POSIX -> Maybe Text -> Maybe POSIX -> AttackSummary
-- | The unique identifier (ID) of the attack.
[$sel:attackId:AttackSummary'] :: AttackSummary -> Maybe Text
-- | The list of attacks for a specified time period.
[$sel:attackVectors:AttackSummary'] :: AttackSummary -> Maybe [AttackVectorDescription]
-- | The end time of the attack, in Unix time in seconds.
[$sel:endTime:AttackSummary'] :: AttackSummary -> Maybe POSIX
-- | The ARN (Amazon Resource Name) of the resource that was attacked.
[$sel:resourceArn:AttackSummary'] :: AttackSummary -> Maybe Text
-- | The start time of the attack, in Unix time in seconds.
[$sel:startTime:AttackSummary'] :: AttackSummary -> Maybe POSIX
-- | Create a value of AttackSummary with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackId:AttackSummary', attackSummary_attackId -
-- The unique identifier (ID) of the attack.
--
-- $sel:attackVectors:AttackSummary',
-- attackSummary_attackVectors - The list of attacks for a
-- specified time period.
--
-- $sel:endTime:AttackSummary', attackSummary_endTime - The
-- end time of the attack, in Unix time in seconds.
--
-- $sel:resourceArn:AttackSummary',
-- attackSummary_resourceArn - The ARN (Amazon Resource Name) of
-- the resource that was attacked.
--
-- $sel:startTime:AttackSummary', attackSummary_startTime -
-- The start time of the attack, in Unix time in seconds.
newAttackSummary :: AttackSummary
-- | The unique identifier (ID) of the attack.
attackSummary_attackId :: Lens' AttackSummary (Maybe Text)
-- | The list of attacks for a specified time period.
attackSummary_attackVectors :: Lens' AttackSummary (Maybe [AttackVectorDescription])
-- | The end time of the attack, in Unix time in seconds.
attackSummary_endTime :: Lens' AttackSummary (Maybe UTCTime)
-- | The ARN (Amazon Resource Name) of the resource that was attacked.
attackSummary_resourceArn :: Lens' AttackSummary (Maybe Text)
-- | The start time of the attack, in Unix time in seconds.
attackSummary_startTime :: Lens' AttackSummary (Maybe UTCTime)
-- | Describes the attack.
--
-- See: newAttackVectorDescription smart constructor.
data AttackVectorDescription
AttackVectorDescription' :: Text -> AttackVectorDescription
-- | The attack type. Valid values:
--
--
-- - UDP_TRAFFIC
-- - UDP_FRAGMENT
-- - GENERIC_UDP_REFLECTION
-- - DNS_REFLECTION
-- - NTP_REFLECTION
-- - CHARGEN_REFLECTION
-- - SSDP_REFLECTION
-- - PORT_MAPPER
-- - RIP_REFLECTION
-- - SNMP_REFLECTION
-- - MSSQL_REFLECTION
-- - NET_BIOS_REFLECTION
-- - SYN_FLOOD
-- - ACK_FLOOD
-- - REQUEST_FLOOD
-- - HTTP_REFLECTION
-- - UDS_REFLECTION
-- - MEMCACHED_REFLECTION
--
[$sel:vectorType:AttackVectorDescription'] :: AttackVectorDescription -> Text
-- | Create a value of AttackVectorDescription with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:vectorType:AttackVectorDescription',
-- attackVectorDescription_vectorType - The attack type. Valid
-- values:
--
--
-- - UDP_TRAFFIC
-- - UDP_FRAGMENT
-- - GENERIC_UDP_REFLECTION
-- - DNS_REFLECTION
-- - NTP_REFLECTION
-- - CHARGEN_REFLECTION
-- - SSDP_REFLECTION
-- - PORT_MAPPER
-- - RIP_REFLECTION
-- - SNMP_REFLECTION
-- - MSSQL_REFLECTION
-- - NET_BIOS_REFLECTION
-- - SYN_FLOOD
-- - ACK_FLOOD
-- - REQUEST_FLOOD
-- - HTTP_REFLECTION
-- - UDS_REFLECTION
-- - MEMCACHED_REFLECTION
--
newAttackVectorDescription :: Text -> AttackVectorDescription
-- | The attack type. Valid values:
--
--
-- - UDP_TRAFFIC
-- - UDP_FRAGMENT
-- - GENERIC_UDP_REFLECTION
-- - DNS_REFLECTION
-- - NTP_REFLECTION
-- - CHARGEN_REFLECTION
-- - SSDP_REFLECTION
-- - PORT_MAPPER
-- - RIP_REFLECTION
-- - SNMP_REFLECTION
-- - MSSQL_REFLECTION
-- - NET_BIOS_REFLECTION
-- - SYN_FLOOD
-- - ACK_FLOOD
-- - REQUEST_FLOOD
-- - HTTP_REFLECTION
-- - UDS_REFLECTION
-- - MEMCACHED_REFLECTION
--
attackVectorDescription_vectorType :: Lens' AttackVectorDescription Text
-- | Information about the volume of attacks during the time period,
-- included in an AttackStatisticsDataItem. If the accompanying
-- AttackCount in the statistics object is zero, this setting
-- might be empty.
--
-- See: newAttackVolume smart constructor.
data AttackVolume
AttackVolume' :: Maybe AttackVolumeStatistics -> Maybe AttackVolumeStatistics -> Maybe AttackVolumeStatistics -> AttackVolume
-- | A statistics object that uses bits per second as the unit. This is
-- included for network level attacks.
[$sel:bitsPerSecond:AttackVolume'] :: AttackVolume -> Maybe AttackVolumeStatistics
-- | A statistics object that uses packets per second as the unit. This is
-- included for network level attacks.
[$sel:packetsPerSecond:AttackVolume'] :: AttackVolume -> Maybe AttackVolumeStatistics
-- | A statistics object that uses requests per second as the unit. This is
-- included for application level attacks, and is only available for
-- accounts that are subscribed to Shield Advanced.
[$sel:requestsPerSecond:AttackVolume'] :: AttackVolume -> Maybe AttackVolumeStatistics
-- | Create a value of AttackVolume with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:bitsPerSecond:AttackVolume',
-- attackVolume_bitsPerSecond - A statistics object that uses bits
-- per second as the unit. This is included for network level attacks.
--
-- $sel:packetsPerSecond:AttackVolume',
-- attackVolume_packetsPerSecond - A statistics object that uses
-- packets per second as the unit. This is included for network level
-- attacks.
--
-- $sel:requestsPerSecond:AttackVolume',
-- attackVolume_requestsPerSecond - A statistics object that uses
-- requests per second as the unit. This is included for application
-- level attacks, and is only available for accounts that are subscribed
-- to Shield Advanced.
newAttackVolume :: AttackVolume
-- | A statistics object that uses bits per second as the unit. This is
-- included for network level attacks.
attackVolume_bitsPerSecond :: Lens' AttackVolume (Maybe AttackVolumeStatistics)
-- | A statistics object that uses packets per second as the unit. This is
-- included for network level attacks.
attackVolume_packetsPerSecond :: Lens' AttackVolume (Maybe AttackVolumeStatistics)
-- | A statistics object that uses requests per second as the unit. This is
-- included for application level attacks, and is only available for
-- accounts that are subscribed to Shield Advanced.
attackVolume_requestsPerSecond :: Lens' AttackVolume (Maybe AttackVolumeStatistics)
-- | Statistics objects for the various data types in AttackVolume.
--
-- See: newAttackVolumeStatistics smart constructor.
data AttackVolumeStatistics
AttackVolumeStatistics' :: Double -> AttackVolumeStatistics
-- | The maximum attack volume observed for the given unit.
[$sel:max:AttackVolumeStatistics'] :: AttackVolumeStatistics -> Double
-- | Create a value of AttackVolumeStatistics with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:max:AttackVolumeStatistics',
-- attackVolumeStatistics_max - The maximum attack volume observed
-- for the given unit.
newAttackVolumeStatistics :: Double -> AttackVolumeStatistics
-- | The maximum attack volume observed for the given unit.
attackVolumeStatistics_max :: Lens' AttackVolumeStatistics Double
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Block action.
--
-- This is only used in the context of the ResponseAction
-- setting.
--
-- JSON specification: "Block": {}
--
-- See: newBlockAction smart constructor.
data BlockAction
BlockAction' :: BlockAction
-- | Create a value of BlockAction with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newBlockAction :: BlockAction
-- | A contributor to the attack and their contribution.
--
-- See: newContributor smart constructor.
data Contributor
Contributor' :: Maybe Text -> Maybe Integer -> Contributor
-- | The name of the contributor. The type of name that you'll find here
-- depends on the AttackPropertyIdentifier setting in the
-- AttackProperty where this contributor is defined. For
-- example, if the AttackPropertyIdentifier is
-- SOURCE_COUNTRY, the Name could be United
-- States.
[$sel:name:Contributor'] :: Contributor -> Maybe Text
-- | The contribution of this contributor expressed in Protection units.
-- For example 10,000.
[$sel:value:Contributor'] :: Contributor -> Maybe Integer
-- | Create a value of Contributor with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:name:Contributor', contributor_name - The name of
-- the contributor. The type of name that you'll find here depends on the
-- AttackPropertyIdentifier setting in the
-- AttackProperty where this contributor is defined. For
-- example, if the AttackPropertyIdentifier is
-- SOURCE_COUNTRY, the Name could be United
-- States.
--
-- $sel:value:Contributor', contributor_value - The
-- contribution of this contributor expressed in Protection units. For
-- example 10,000.
newContributor :: Contributor
-- | The name of the contributor. The type of name that you'll find here
-- depends on the AttackPropertyIdentifier setting in the
-- AttackProperty where this contributor is defined. For
-- example, if the AttackPropertyIdentifier is
-- SOURCE_COUNTRY, the Name could be United
-- States.
contributor_name :: Lens' Contributor (Maybe Text)
-- | The contribution of this contributor expressed in Protection units.
-- For example 10,000.
contributor_value :: Lens' Contributor (Maybe Integer)
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Count action.
--
-- This is only used in the context of the ResponseAction
-- setting.
--
-- JSON specification: "Count": {}
--
-- See: newCountAction smart constructor.
data CountAction
CountAction' :: CountAction
-- | Create a value of CountAction with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newCountAction :: CountAction
-- | Contact information that the SRT can use to contact you if you have
-- proactive engagement enabled, for escalations to the SRT and to
-- initiate proactive customer support.
--
-- See: newEmergencyContact smart constructor.
data EmergencyContact
EmergencyContact' :: Maybe Text -> Maybe Text -> Text -> EmergencyContact
-- | Additional notes regarding the contact.
[$sel:contactNotes:EmergencyContact'] :: EmergencyContact -> Maybe Text
-- | The phone number for the contact.
[$sel:phoneNumber:EmergencyContact'] :: EmergencyContact -> Maybe Text
-- | The email address for the contact.
[$sel:emailAddress:EmergencyContact'] :: EmergencyContact -> Text
-- | Create a value of EmergencyContact with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:contactNotes:EmergencyContact',
-- emergencyContact_contactNotes - Additional notes regarding the
-- contact.
--
-- $sel:phoneNumber:EmergencyContact',
-- emergencyContact_phoneNumber - The phone number for the
-- contact.
--
-- $sel:emailAddress:EmergencyContact',
-- emergencyContact_emailAddress - The email address for the
-- contact.
newEmergencyContact :: Text -> EmergencyContact
-- | Additional notes regarding the contact.
emergencyContact_contactNotes :: Lens' EmergencyContact (Maybe Text)
-- | The phone number for the contact.
emergencyContact_phoneNumber :: Lens' EmergencyContact (Maybe Text)
-- | The email address for the contact.
emergencyContact_emailAddress :: Lens' EmergencyContact Text
-- | Narrows the set of protections that the call retrieves. You can
-- retrieve a single protection by providing its name or the ARN (Amazon
-- Resource Name) of its protected resource. You can also retrieve all
-- protections for a specific resource type. You can provide up to one
-- criteria per filter type. Shield Advanced returns protections that
-- exactly match all of the filter criteria that you provide.
--
-- See: newInclusionProtectionFilters smart constructor.
data InclusionProtectionFilters
InclusionProtectionFilters' :: Maybe (NonEmpty Text) -> Maybe (NonEmpty Text) -> Maybe (NonEmpty ProtectedResourceType) -> InclusionProtectionFilters
-- | The name of the protection that you want to retrieve.
[$sel:protectionNames:InclusionProtectionFilters'] :: InclusionProtectionFilters -> Maybe (NonEmpty Text)
-- | The ARN (Amazon Resource Name) of the resource whose protection you
-- want to retrieve.
[$sel:resourceArns:InclusionProtectionFilters'] :: InclusionProtectionFilters -> Maybe (NonEmpty Text)
-- | The type of protected resource whose protections you want to retrieve.
[$sel:resourceTypes:InclusionProtectionFilters'] :: InclusionProtectionFilters -> Maybe (NonEmpty ProtectedResourceType)
-- | Create a value of InclusionProtectionFilters with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionNames:InclusionProtectionFilters',
-- inclusionProtectionFilters_protectionNames - The name of the
-- protection that you want to retrieve.
--
-- $sel:resourceArns:InclusionProtectionFilters',
-- inclusionProtectionFilters_resourceArns - The ARN (Amazon
-- Resource Name) of the resource whose protection you want to retrieve.
--
-- $sel:resourceTypes:InclusionProtectionFilters',
-- inclusionProtectionFilters_resourceTypes - The type of
-- protected resource whose protections you want to retrieve.
newInclusionProtectionFilters :: InclusionProtectionFilters
-- | The name of the protection that you want to retrieve.
inclusionProtectionFilters_protectionNames :: Lens' InclusionProtectionFilters (Maybe (NonEmpty Text))
-- | The ARN (Amazon Resource Name) of the resource whose protection you
-- want to retrieve.
inclusionProtectionFilters_resourceArns :: Lens' InclusionProtectionFilters (Maybe (NonEmpty Text))
-- | The type of protected resource whose protections you want to retrieve.
inclusionProtectionFilters_resourceTypes :: Lens' InclusionProtectionFilters (Maybe (NonEmpty ProtectedResourceType))
-- | Narrows the set of protection groups that the call retrieves. You can
-- retrieve a single protection group by its name and you can retrieve
-- all protection groups that are configured with a specific pattern,
-- aggregation, or resource type. You can provide up to one criteria per
-- filter type. Shield Advanced returns the protection groups that
-- exactly match all of the search criteria that you provide.
--
-- See: newInclusionProtectionGroupFilters smart
-- constructor.
data InclusionProtectionGroupFilters
InclusionProtectionGroupFilters' :: Maybe (NonEmpty ProtectionGroupAggregation) -> Maybe (NonEmpty ProtectionGroupPattern) -> Maybe (NonEmpty Text) -> Maybe (NonEmpty ProtectedResourceType) -> InclusionProtectionGroupFilters
-- | The aggregation setting of the protection groups that you want to
-- retrieve.
[$sel:aggregations:InclusionProtectionGroupFilters'] :: InclusionProtectionGroupFilters -> Maybe (NonEmpty ProtectionGroupAggregation)
-- | The pattern specification of the protection groups that you want to
-- retrieve.
[$sel:patterns:InclusionProtectionGroupFilters'] :: InclusionProtectionGroupFilters -> Maybe (NonEmpty ProtectionGroupPattern)
-- | The ID of the protection group that you want to retrieve.
[$sel:protectionGroupIds:InclusionProtectionGroupFilters'] :: InclusionProtectionGroupFilters -> Maybe (NonEmpty Text)
-- | The resource type configuration of the protection groups that you want
-- to retrieve. In the protection group configuration, you specify the
-- resource type when you set the group's Pattern to
-- BY_RESOURCE_TYPE.
[$sel:resourceTypes:InclusionProtectionGroupFilters'] :: InclusionProtectionGroupFilters -> Maybe (NonEmpty ProtectedResourceType)
-- | Create a value of InclusionProtectionGroupFilters with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:aggregations:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_aggregations - The aggregation
-- setting of the protection groups that you want to retrieve.
--
-- $sel:patterns:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_patterns - The pattern
-- specification of the protection groups that you want to retrieve.
--
-- $sel:protectionGroupIds:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_protectionGroupIds - The ID of
-- the protection group that you want to retrieve.
--
-- $sel:resourceTypes:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_resourceTypes - The resource
-- type configuration of the protection groups that you want to retrieve.
-- In the protection group configuration, you specify the resource type
-- when you set the group's Pattern to
-- BY_RESOURCE_TYPE.
newInclusionProtectionGroupFilters :: InclusionProtectionGroupFilters
-- | The aggregation setting of the protection groups that you want to
-- retrieve.
inclusionProtectionGroupFilters_aggregations :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty ProtectionGroupAggregation))
-- | The pattern specification of the protection groups that you want to
-- retrieve.
inclusionProtectionGroupFilters_patterns :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty ProtectionGroupPattern))
-- | The ID of the protection group that you want to retrieve.
inclusionProtectionGroupFilters_protectionGroupIds :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty Text))
-- | The resource type configuration of the protection groups that you want
-- to retrieve. In the protection group configuration, you specify the
-- resource type when you set the group's Pattern to
-- BY_RESOURCE_TYPE.
inclusionProtectionGroupFilters_resourceTypes :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty ProtectedResourceType))
-- | Specifies how many protections of a given type you can create.
--
-- See: newLimit smart constructor.
data Limit
Limit' :: Maybe Integer -> Maybe Text -> Limit
-- | The maximum number of protections that can be created for the
-- specified Type.
[$sel:max:Limit'] :: Limit -> Maybe Integer
-- | The type of protection.
[$sel:type':Limit'] :: Limit -> Maybe Text
-- | Create a value of Limit with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:max:Limit', limit_max - The maximum number of
-- protections that can be created for the specified Type.
--
-- $sel:type':Limit', limit_type - The type of protection.
newLimit :: Limit
-- | The maximum number of protections that can be created for the
-- specified Type.
limit_max :: Lens' Limit (Maybe Integer)
-- | The type of protection.
limit_type :: Lens' Limit (Maybe Text)
-- | The mitigation applied to a DDoS attack.
--
-- See: newMitigation smart constructor.
data Mitigation
Mitigation' :: Maybe Text -> Mitigation
-- | The name of the mitigation taken for this attack.
[$sel:mitigationName:Mitigation'] :: Mitigation -> Maybe Text
-- | Create a value of Mitigation with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:mitigationName:Mitigation',
-- mitigation_mitigationName - The name of the mitigation taken
-- for this attack.
newMitigation :: Mitigation
-- | The name of the mitigation taken for this attack.
mitigation_mitigationName :: Lens' Mitigation (Maybe Text)
-- | An object that represents a resource that is under DDoS protection.
--
-- See: newProtection smart constructor.
data Protection
Protection' :: Maybe ApplicationLayerAutomaticResponseConfiguration -> Maybe [Text] -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Protection
-- | The automatic application layer DDoS mitigation settings for the
-- protection. This configuration determines whether Shield Advanced
-- automatically manages rules in the web ACL in order to respond to
-- application layer events that Shield Advanced determines to be DDoS
-- attacks.
[$sel:applicationLayerAutomaticResponseConfiguration:Protection'] :: Protection -> Maybe ApplicationLayerAutomaticResponseConfiguration
-- | The unique identifier (ID) for the Route 53 health check that's
-- associated with the protection.
[$sel:healthCheckIds:Protection'] :: Protection -> Maybe [Text]
-- | The unique identifier (ID) of the protection.
[$sel:id:Protection'] :: Protection -> Maybe Text
-- | The name of the protection. For example, My CloudFront
-- distributions.
[$sel:name:Protection'] :: Protection -> Maybe Text
-- | The ARN (Amazon Resource Name) of the protection.
[$sel:protectionArn:Protection'] :: Protection -> Maybe Text
-- | The ARN (Amazon Resource Name) of the Amazon Web Services resource
-- that is protected.
[$sel:resourceArn:Protection'] :: Protection -> Maybe Text
-- | Create a value of Protection with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
--
-- $sel:applicationLayerAutomaticResponseConfiguration:Protection',
-- protection_applicationLayerAutomaticResponseConfiguration - The
-- automatic application layer DDoS mitigation settings for the
-- protection. This configuration determines whether Shield Advanced
-- automatically manages rules in the web ACL in order to respond to
-- application layer events that Shield Advanced determines to be DDoS
-- attacks.
--
-- $sel:healthCheckIds:Protection',
-- protection_healthCheckIds - The unique identifier (ID) for the
-- Route 53 health check that's associated with the protection.
--
-- $sel:id:Protection', protection_id - The unique
-- identifier (ID) of the protection.
--
-- $sel:name:Protection', protection_name - The name of the
-- protection. For example, My CloudFront distributions.
--
-- $sel:protectionArn:Protection', protection_protectionArn
-- - The ARN (Amazon Resource Name) of the protection.
--
-- $sel:resourceArn:Protection', protection_resourceArn -
-- The ARN (Amazon Resource Name) of the Amazon Web Services resource
-- that is protected.
newProtection :: Protection
-- | The automatic application layer DDoS mitigation settings for the
-- protection. This configuration determines whether Shield Advanced
-- automatically manages rules in the web ACL in order to respond to
-- application layer events that Shield Advanced determines to be DDoS
-- attacks.
protection_applicationLayerAutomaticResponseConfiguration :: Lens' Protection (Maybe ApplicationLayerAutomaticResponseConfiguration)
-- | The unique identifier (ID) for the Route 53 health check that's
-- associated with the protection.
protection_healthCheckIds :: Lens' Protection (Maybe [Text])
-- | The unique identifier (ID) of the protection.
protection_id :: Lens' Protection (Maybe Text)
-- | The name of the protection. For example, My CloudFront
-- distributions.
protection_name :: Lens' Protection (Maybe Text)
-- | The ARN (Amazon Resource Name) of the protection.
protection_protectionArn :: Lens' Protection (Maybe Text)
-- | The ARN (Amazon Resource Name) of the Amazon Web Services resource
-- that is protected.
protection_resourceArn :: Lens' Protection (Maybe Text)
-- | A grouping of protected resources that you and Shield Advanced can
-- monitor as a collective. This resource grouping improves the accuracy
-- of detection and reduces false positives.
--
-- See: newProtectionGroup smart constructor.
data ProtectionGroup
ProtectionGroup' :: Maybe Text -> Maybe ProtectedResourceType -> Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> [Text] -> ProtectionGroup
-- | The ARN (Amazon Resource Name) of the protection group.
[$sel:protectionGroupArn:ProtectionGroup'] :: ProtectionGroup -> Maybe Text
-- | The resource type to include in the protection group. All protected
-- resources of this type are included in the protection group. You must
-- set this when you set Pattern to BY_RESOURCE_TYPE
-- and you must not set it for any other Pattern setting.
[$sel:resourceType:ProtectionGroup'] :: ProtectionGroup -> Maybe ProtectedResourceType
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
[$sel:protectionGroupId:ProtectionGroup'] :: ProtectionGroup -> Text
-- | Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
[$sel:aggregation:ProtectionGroup'] :: ProtectionGroup -> ProtectionGroupAggregation
-- | The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource ARNs (Amazon Resource Names), or include
-- all resources of a specified resource type.
[$sel:pattern':ProtectionGroup'] :: ProtectionGroup -> ProtectionGroupPattern
-- | The ARNs (Amazon Resource Names) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
[$sel:members:ProtectionGroup'] :: ProtectionGroup -> [Text]
-- | Create a value of ProtectionGroup with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionGroupArn:ProtectionGroup',
-- protectionGroup_protectionGroupArn - The ARN (Amazon Resource
-- Name) of the protection group.
--
-- $sel:resourceType:ProtectionGroup',
-- protectionGroup_resourceType - The resource type to include in
-- the protection group. All protected resources of this type are
-- included in the protection group. You must set this when you set
-- Pattern to BY_RESOURCE_TYPE and you must not set it
-- for any other Pattern setting.
--
-- $sel:protectionGroupId:ProtectionGroup',
-- protectionGroup_protectionGroupId - The name of the protection
-- group. You use this to identify the protection group in lists and to
-- manage the protection group, for example to update, delete, or
-- describe it.
--
-- $sel:aggregation:ProtectionGroup',
-- protectionGroup_aggregation - Defines how Shield combines
-- resource data for the group in order to detect, mitigate, and report
-- events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
--
-- $sel:pattern':ProtectionGroup', protectionGroup_pattern
-- - The criteria to use to choose the protected resources for inclusion
-- in the group. You can include all resources that have protections,
-- provide a list of resource ARNs (Amazon Resource Names), or include
-- all resources of a specified resource type.
--
-- $sel:members:ProtectionGroup', protectionGroup_members -
-- The ARNs (Amazon Resource Names) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
newProtectionGroup :: Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> ProtectionGroup
-- | The ARN (Amazon Resource Name) of the protection group.
protectionGroup_protectionGroupArn :: Lens' ProtectionGroup (Maybe Text)
-- | The resource type to include in the protection group. All protected
-- resources of this type are included in the protection group. You must
-- set this when you set Pattern to BY_RESOURCE_TYPE
-- and you must not set it for any other Pattern setting.
protectionGroup_resourceType :: Lens' ProtectionGroup (Maybe ProtectedResourceType)
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
protectionGroup_protectionGroupId :: Lens' ProtectionGroup Text
-- | Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
protectionGroup_aggregation :: Lens' ProtectionGroup ProtectionGroupAggregation
-- | The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource ARNs (Amazon Resource Names), or include
-- all resources of a specified resource type.
protectionGroup_pattern :: Lens' ProtectionGroup ProtectionGroupPattern
-- | The ARNs (Amazon Resource Names) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
protectionGroup_members :: Lens' ProtectionGroup [Text]
-- | Limits settings on protection groups with arbitrary pattern type.
--
-- See: newProtectionGroupArbitraryPatternLimits smart
-- constructor.
data ProtectionGroupArbitraryPatternLimits
ProtectionGroupArbitraryPatternLimits' :: Integer -> ProtectionGroupArbitraryPatternLimits
-- | The maximum number of resources you can specify for a single arbitrary
-- pattern in a protection group.
[$sel:maxMembers:ProtectionGroupArbitraryPatternLimits'] :: ProtectionGroupArbitraryPatternLimits -> Integer
-- | Create a value of ProtectionGroupArbitraryPatternLimits with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:maxMembers:ProtectionGroupArbitraryPatternLimits',
-- protectionGroupArbitraryPatternLimits_maxMembers - The maximum
-- number of resources you can specify for a single arbitrary pattern in
-- a protection group.
newProtectionGroupArbitraryPatternLimits :: Integer -> ProtectionGroupArbitraryPatternLimits
-- | The maximum number of resources you can specify for a single arbitrary
-- pattern in a protection group.
protectionGroupArbitraryPatternLimits_maxMembers :: Lens' ProtectionGroupArbitraryPatternLimits Integer
-- | Limits settings on protection groups for your subscription.
--
-- See: newProtectionGroupLimits smart constructor.
data ProtectionGroupLimits
ProtectionGroupLimits' :: Integer -> ProtectionGroupPatternTypeLimits -> ProtectionGroupLimits
-- | The maximum number of protection groups that you can have at one time.
[$sel:maxProtectionGroups:ProtectionGroupLimits'] :: ProtectionGroupLimits -> Integer
-- | Limits settings by pattern type in the protection groups for your
-- subscription.
[$sel:patternTypeLimits:ProtectionGroupLimits'] :: ProtectionGroupLimits -> ProtectionGroupPatternTypeLimits
-- | Create a value of ProtectionGroupLimits with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:maxProtectionGroups:ProtectionGroupLimits',
-- protectionGroupLimits_maxProtectionGroups - The maximum number
-- of protection groups that you can have at one time.
--
-- $sel:patternTypeLimits:ProtectionGroupLimits',
-- protectionGroupLimits_patternTypeLimits - Limits settings by
-- pattern type in the protection groups for your subscription.
newProtectionGroupLimits :: Integer -> ProtectionGroupPatternTypeLimits -> ProtectionGroupLimits
-- | The maximum number of protection groups that you can have at one time.
protectionGroupLimits_maxProtectionGroups :: Lens' ProtectionGroupLimits Integer
-- | Limits settings by pattern type in the protection groups for your
-- subscription.
protectionGroupLimits_patternTypeLimits :: Lens' ProtectionGroupLimits ProtectionGroupPatternTypeLimits
-- | Limits settings by pattern type in the protection groups for your
-- subscription.
--
-- See: newProtectionGroupPatternTypeLimits smart
-- constructor.
data ProtectionGroupPatternTypeLimits
ProtectionGroupPatternTypeLimits' :: ProtectionGroupArbitraryPatternLimits -> ProtectionGroupPatternTypeLimits
-- | Limits settings on protection groups with arbitrary pattern type.
[$sel:arbitraryPatternLimits:ProtectionGroupPatternTypeLimits'] :: ProtectionGroupPatternTypeLimits -> ProtectionGroupArbitraryPatternLimits
-- | Create a value of ProtectionGroupPatternTypeLimits with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:arbitraryPatternLimits:ProtectionGroupPatternTypeLimits',
-- protectionGroupPatternTypeLimits_arbitraryPatternLimits -
-- Limits settings on protection groups with arbitrary pattern type.
newProtectionGroupPatternTypeLimits :: ProtectionGroupArbitraryPatternLimits -> ProtectionGroupPatternTypeLimits
-- | Limits settings on protection groups with arbitrary pattern type.
protectionGroupPatternTypeLimits_arbitraryPatternLimits :: Lens' ProtectionGroupPatternTypeLimits ProtectionGroupArbitraryPatternLimits
-- | Limits settings on protections for your subscription.
--
-- See: newProtectionLimits smart constructor.
data ProtectionLimits
ProtectionLimits' :: [Limit] -> ProtectionLimits
-- | The maximum number of resource types that you can specify in a
-- protection.
[$sel:protectedResourceTypeLimits:ProtectionLimits'] :: ProtectionLimits -> [Limit]
-- | Create a value of ProtectionLimits with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectedResourceTypeLimits:ProtectionLimits',
-- protectionLimits_protectedResourceTypeLimits - The maximum
-- number of resource types that you can specify in a protection.
newProtectionLimits :: ProtectionLimits
-- | The maximum number of resource types that you can specify in a
-- protection.
protectionLimits_protectedResourceTypeLimits :: Lens' ProtectionLimits [Limit]
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
--
-- See: newResponseAction smart constructor.
data ResponseAction
ResponseAction' :: Maybe BlockAction -> Maybe CountAction -> ResponseAction
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Block action.
--
-- You must specify exactly one action, either Block or
-- Count.
[$sel:block:ResponseAction'] :: ResponseAction -> Maybe BlockAction
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Count action.
--
-- You must specify exactly one action, either Block or
-- Count.
[$sel:count:ResponseAction'] :: ResponseAction -> Maybe CountAction
-- | Create a value of ResponseAction with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:block:ResponseAction', responseAction_block -
-- Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Block action.
--
-- You must specify exactly one action, either Block or
-- Count.
--
-- $sel:count:ResponseAction', responseAction_count -
-- Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Count action.
--
-- You must specify exactly one action, either Block or
-- Count.
newResponseAction :: ResponseAction
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Block action.
--
-- You must specify exactly one action, either Block or
-- Count.
responseAction_block :: Lens' ResponseAction (Maybe BlockAction)
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Count action.
--
-- You must specify exactly one action, either Block or
-- Count.
responseAction_count :: Lens' ResponseAction (Maybe CountAction)
-- | The attack information for the specified SubResource.
--
-- See: newSubResourceSummary smart constructor.
data SubResourceSummary
SubResourceSummary' :: Maybe [SummarizedAttackVector] -> Maybe [SummarizedCounter] -> Maybe Text -> Maybe SubResourceType -> SubResourceSummary
-- | The list of attack types and associated counters.
[$sel:attackVectors:SubResourceSummary'] :: SubResourceSummary -> Maybe [SummarizedAttackVector]
-- | The counters that describe the details of the attack.
[$sel:counters:SubResourceSummary'] :: SubResourceSummary -> Maybe [SummarizedCounter]
-- | The unique identifier (ID) of the SubResource.
[$sel:id:SubResourceSummary'] :: SubResourceSummary -> Maybe Text
-- | The SubResource type.
[$sel:type':SubResourceSummary'] :: SubResourceSummary -> Maybe SubResourceType
-- | Create a value of SubResourceSummary with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackVectors:SubResourceSummary',
-- subResourceSummary_attackVectors - The list of attack types and
-- associated counters.
--
-- $sel:counters:SubResourceSummary',
-- subResourceSummary_counters - The counters that describe the
-- details of the attack.
--
-- $sel:id:SubResourceSummary', subResourceSummary_id - The
-- unique identifier (ID) of the SubResource.
--
-- $sel:type':SubResourceSummary', subResourceSummary_type
-- - The SubResource type.
newSubResourceSummary :: SubResourceSummary
-- | The list of attack types and associated counters.
subResourceSummary_attackVectors :: Lens' SubResourceSummary (Maybe [SummarizedAttackVector])
-- | The counters that describe the details of the attack.
subResourceSummary_counters :: Lens' SubResourceSummary (Maybe [SummarizedCounter])
-- | The unique identifier (ID) of the SubResource.
subResourceSummary_id :: Lens' SubResourceSummary (Maybe Text)
-- | The SubResource type.
subResourceSummary_type :: Lens' SubResourceSummary (Maybe SubResourceType)
-- | Information about the Shield Advanced subscription for an account.
--
-- See: newSubscription smart constructor.
data Subscription
Subscription' :: Maybe AutoRenew -> Maybe POSIX -> Maybe [Limit] -> Maybe ProactiveEngagementStatus -> Maybe POSIX -> Maybe Text -> Maybe Natural -> SubscriptionLimits -> Subscription
-- | If ENABLED, the subscription will be automatically renewed at
-- the end of the existing subscription period.
--
-- When you initally create a subscription, AutoRenew is set to
-- ENABLED. You can change this by submitting an
-- UpdateSubscription request. If the
-- UpdateSubscription request does not included a value for
-- AutoRenew, the existing value for AutoRenew remains
-- unchanged.
[$sel:autoRenew:Subscription'] :: Subscription -> Maybe AutoRenew
-- | The date and time your subscription will end.
[$sel:endTime:Subscription'] :: Subscription -> Maybe POSIX
-- | Specifies how many protections of a given type you can create.
[$sel:limits:Subscription'] :: Subscription -> Maybe [Limit]
-- | If ENABLED, the Shield Response Team (SRT) will use email and
-- phone to notify contacts about escalations to the SRT and to initiate
-- proactive customer support.
--
-- If PENDING, you have requested proactive engagement and the
-- request is pending. The status changes to ENABLED when your
-- request is fully processed.
--
-- If DISABLED, the SRT will not proactively notify contacts
-- about escalations or to initiate proactive customer support.
[$sel:proactiveEngagementStatus:Subscription'] :: Subscription -> Maybe ProactiveEngagementStatus
-- | The start time of the subscription, in Unix time in seconds.
[$sel:startTime:Subscription'] :: Subscription -> Maybe POSIX
-- | The ARN (Amazon Resource Name) of the subscription.
[$sel:subscriptionArn:Subscription'] :: Subscription -> Maybe Text
-- | The length, in seconds, of the Shield Advanced subscription for the
-- account.
[$sel:timeCommitmentInSeconds:Subscription'] :: Subscription -> Maybe Natural
-- | Limits settings for your subscription.
[$sel:subscriptionLimits:Subscription'] :: Subscription -> SubscriptionLimits
-- | Create a value of Subscription with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:autoRenew:Subscription', subscription_autoRenew -
-- If ENABLED, the subscription will be automatically renewed at
-- the end of the existing subscription period.
--
-- When you initally create a subscription, AutoRenew is set to
-- ENABLED. You can change this by submitting an
-- UpdateSubscription request. If the
-- UpdateSubscription request does not included a value for
-- AutoRenew, the existing value for AutoRenew remains
-- unchanged.
--
-- $sel:endTime:Subscription', subscription_endTime - The
-- date and time your subscription will end.
--
-- $sel:limits:Subscription', subscription_limits -
-- Specifies how many protections of a given type you can create.
--
-- $sel:proactiveEngagementStatus:Subscription',
-- subscription_proactiveEngagementStatus - If ENABLED,
-- the Shield Response Team (SRT) will use email and phone to notify
-- contacts about escalations to the SRT and to initiate proactive
-- customer support.
--
-- If PENDING, you have requested proactive engagement and the
-- request is pending. The status changes to ENABLED when your
-- request is fully processed.
--
-- If DISABLED, the SRT will not proactively notify contacts
-- about escalations or to initiate proactive customer support.
--
-- $sel:startTime:Subscription', subscription_startTime -
-- The start time of the subscription, in Unix time in seconds.
--
-- $sel:subscriptionArn:Subscription',
-- subscription_subscriptionArn - The ARN (Amazon Resource Name)
-- of the subscription.
--
-- $sel:timeCommitmentInSeconds:Subscription',
-- subscription_timeCommitmentInSeconds - The length, in seconds,
-- of the Shield Advanced subscription for the account.
--
-- $sel:subscriptionLimits:Subscription',
-- subscription_subscriptionLimits - Limits settings for your
-- subscription.
newSubscription :: SubscriptionLimits -> Subscription
-- | If ENABLED, the subscription will be automatically renewed at
-- the end of the existing subscription period.
--
-- When you initally create a subscription, AutoRenew is set to
-- ENABLED. You can change this by submitting an
-- UpdateSubscription request. If the
-- UpdateSubscription request does not included a value for
-- AutoRenew, the existing value for AutoRenew remains
-- unchanged.
subscription_autoRenew :: Lens' Subscription (Maybe AutoRenew)
-- | The date and time your subscription will end.
subscription_endTime :: Lens' Subscription (Maybe UTCTime)
-- | Specifies how many protections of a given type you can create.
subscription_limits :: Lens' Subscription (Maybe [Limit])
-- | If ENABLED, the Shield Response Team (SRT) will use email and
-- phone to notify contacts about escalations to the SRT and to initiate
-- proactive customer support.
--
-- If PENDING, you have requested proactive engagement and the
-- request is pending. The status changes to ENABLED when your
-- request is fully processed.
--
-- If DISABLED, the SRT will not proactively notify contacts
-- about escalations or to initiate proactive customer support.
subscription_proactiveEngagementStatus :: Lens' Subscription (Maybe ProactiveEngagementStatus)
-- | The start time of the subscription, in Unix time in seconds.
subscription_startTime :: Lens' Subscription (Maybe UTCTime)
-- | The ARN (Amazon Resource Name) of the subscription.
subscription_subscriptionArn :: Lens' Subscription (Maybe Text)
-- | The length, in seconds, of the Shield Advanced subscription for the
-- account.
subscription_timeCommitmentInSeconds :: Lens' Subscription (Maybe Natural)
-- | Limits settings for your subscription.
subscription_subscriptionLimits :: Lens' Subscription SubscriptionLimits
-- | Limits settings for your subscription.
--
-- See: newSubscriptionLimits smart constructor.
data SubscriptionLimits
SubscriptionLimits' :: ProtectionLimits -> ProtectionGroupLimits -> SubscriptionLimits
-- | Limits settings on protections for your subscription.
[$sel:protectionLimits:SubscriptionLimits'] :: SubscriptionLimits -> ProtectionLimits
-- | Limits settings on protection groups for your subscription.
[$sel:protectionGroupLimits:SubscriptionLimits'] :: SubscriptionLimits -> ProtectionGroupLimits
-- | Create a value of SubscriptionLimits with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionLimits:SubscriptionLimits',
-- subscriptionLimits_protectionLimits - Limits settings on
-- protections for your subscription.
--
-- $sel:protectionGroupLimits:SubscriptionLimits',
-- subscriptionLimits_protectionGroupLimits - Limits settings on
-- protection groups for your subscription.
newSubscriptionLimits :: ProtectionLimits -> ProtectionGroupLimits -> SubscriptionLimits
-- | Limits settings on protections for your subscription.
subscriptionLimits_protectionLimits :: Lens' SubscriptionLimits ProtectionLimits
-- | Limits settings on protection groups for your subscription.
subscriptionLimits_protectionGroupLimits :: Lens' SubscriptionLimits ProtectionGroupLimits
-- | A summary of information about the attack.
--
-- See: newSummarizedAttackVector smart constructor.
data SummarizedAttackVector
SummarizedAttackVector' :: Maybe [SummarizedCounter] -> Text -> SummarizedAttackVector
-- | The list of counters that describe the details of the attack.
[$sel:vectorCounters:SummarizedAttackVector'] :: SummarizedAttackVector -> Maybe [SummarizedCounter]
-- | The attack type, for example, SNMP reflection or SYN flood.
[$sel:vectorType:SummarizedAttackVector'] :: SummarizedAttackVector -> Text
-- | Create a value of SummarizedAttackVector with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:vectorCounters:SummarizedAttackVector',
-- summarizedAttackVector_vectorCounters - The list of counters
-- that describe the details of the attack.
--
-- $sel:vectorType:SummarizedAttackVector',
-- summarizedAttackVector_vectorType - The attack type, for
-- example, SNMP reflection or SYN flood.
newSummarizedAttackVector :: Text -> SummarizedAttackVector
-- | The list of counters that describe the details of the attack.
summarizedAttackVector_vectorCounters :: Lens' SummarizedAttackVector (Maybe [SummarizedCounter])
-- | The attack type, for example, SNMP reflection or SYN flood.
summarizedAttackVector_vectorType :: Lens' SummarizedAttackVector Text
-- | The counter that describes a DDoS attack.
--
-- See: newSummarizedCounter smart constructor.
data SummarizedCounter
SummarizedCounter' :: Maybe Double -> Maybe Double -> Maybe Int -> Maybe Text -> Maybe Double -> Maybe Text -> SummarizedCounter
-- | The average value of the counter for a specified time period.
[$sel:average:SummarizedCounter'] :: SummarizedCounter -> Maybe Double
-- | The maximum value of the counter for a specified time period.
[$sel:max:SummarizedCounter'] :: SummarizedCounter -> Maybe Double
-- | The number of counters for a specified time period.
[$sel:n:SummarizedCounter'] :: SummarizedCounter -> Maybe Int
-- | The counter name.
[$sel:name:SummarizedCounter'] :: SummarizedCounter -> Maybe Text
-- | The total of counter values for a specified time period.
[$sel:sum:SummarizedCounter'] :: SummarizedCounter -> Maybe Double
-- | The unit of the counters.
[$sel:unit:SummarizedCounter'] :: SummarizedCounter -> Maybe Text
-- | Create a value of SummarizedCounter with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:average:SummarizedCounter',
-- summarizedCounter_average - The average value of the counter
-- for a specified time period.
--
-- $sel:max:SummarizedCounter', summarizedCounter_max - The
-- maximum value of the counter for a specified time period.
--
-- $sel:n:SummarizedCounter', summarizedCounter_n - The
-- number of counters for a specified time period.
--
-- $sel:name:SummarizedCounter', summarizedCounter_name -
-- The counter name.
--
-- $sel:sum:SummarizedCounter', summarizedCounter_sum - The
-- total of counter values for a specified time period.
--
-- $sel:unit:SummarizedCounter', summarizedCounter_unit -
-- The unit of the counters.
newSummarizedCounter :: SummarizedCounter
-- | The average value of the counter for a specified time period.
summarizedCounter_average :: Lens' SummarizedCounter (Maybe Double)
-- | The maximum value of the counter for a specified time period.
summarizedCounter_max :: Lens' SummarizedCounter (Maybe Double)
-- | The number of counters for a specified time period.
summarizedCounter_n :: Lens' SummarizedCounter (Maybe Int)
-- | The counter name.
summarizedCounter_name :: Lens' SummarizedCounter (Maybe Text)
-- | The total of counter values for a specified time period.
summarizedCounter_sum :: Lens' SummarizedCounter (Maybe Double)
-- | The unit of the counters.
summarizedCounter_unit :: Lens' SummarizedCounter (Maybe Text)
-- | A tag associated with an Amazon Web Services resource. Tags are
-- key:value pairs that you can use to categorize and manage your
-- resources, for purposes like billing or other management. Typically,
-- the tag key represents a category, such as "environment", and the tag
-- value represents a specific value within that category, such as
-- "test," "development," or "production". Or you might set the tag key
-- to "customer" and the value to the customer name or ID. You can
-- specify one or more tags to add to each Amazon Web Services resource,
-- up to 50 tags for a resource.
--
-- See: newTag smart constructor.
data Tag
Tag' :: Maybe Text -> Maybe Text -> Tag
-- | Part of the key:value pair that defines a tag. You can use a tag key
-- to describe a category of information, such as "customer." Tag keys
-- are case-sensitive.
[$sel:key:Tag'] :: Tag -> Maybe Text
-- | Part of the key:value pair that defines a tag. You can use a tag value
-- to describe a specific value within a category, such as "companyA" or
-- "companyB." Tag values are case-sensitive.
[$sel:value:Tag'] :: Tag -> Maybe Text
-- | Create a value of Tag with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:key:Tag', tag_key - Part of the key:value pair that
-- defines a tag. You can use a tag key to describe a category of
-- information, such as "customer." Tag keys are case-sensitive.
--
-- $sel:value:Tag', tag_value - Part of the key:value pair
-- that defines a tag. You can use a tag value to describe a specific
-- value within a category, such as "companyA" or "companyB." Tag values
-- are case-sensitive.
newTag :: Tag
-- | Part of the key:value pair that defines a tag. You can use a tag key
-- to describe a category of information, such as "customer." Tag keys
-- are case-sensitive.
tag_key :: Lens' Tag (Maybe Text)
-- | Part of the key:value pair that defines a tag. You can use a tag value
-- to describe a specific value within a category, such as "companyA" or
-- "companyB." Tag values are case-sensitive.
tag_value :: Lens' Tag (Maybe Text)
-- | The time range.
--
-- See: newTimeRange smart constructor.
data TimeRange
TimeRange' :: Maybe POSIX -> Maybe POSIX -> TimeRange
-- | The start time, in Unix time in seconds.
[$sel:fromInclusive:TimeRange'] :: TimeRange -> Maybe POSIX
-- | The end time, in Unix time in seconds.
[$sel:toExclusive:TimeRange'] :: TimeRange -> Maybe POSIX
-- | Create a value of TimeRange with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:fromInclusive:TimeRange', timeRange_fromInclusive -
-- The start time, in Unix time in seconds.
--
-- $sel:toExclusive:TimeRange', timeRange_toExclusive - The
-- end time, in Unix time in seconds.
newTimeRange :: TimeRange
-- | The start time, in Unix time in seconds.
timeRange_fromInclusive :: Lens' TimeRange (Maybe UTCTime)
-- | The end time, in Unix time in seconds.
timeRange_toExclusive :: Lens' TimeRange (Maybe UTCTime)
-- | Adds or updates tags for a resource in Shield.
module Amazonka.Shield.TagResource
-- | See: newTagResource smart constructor.
data TagResource
TagResource' :: Text -> [Tag] -> TagResource
-- | The Amazon Resource Name (ARN) of the resource that you want to add or
-- update tags for.
[$sel:resourceARN:TagResource'] :: TagResource -> Text
-- | The tags that you want to modify or add to the resource.
[$sel:tags:TagResource'] :: TagResource -> [Tag]
-- | Create a value of TagResource with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:resourceARN:TagResource', tagResource_resourceARN -
-- The Amazon Resource Name (ARN) of the resource that you want to add or
-- update tags for.
--
-- $sel:tags:TagResource', tagResource_tags - The tags that
-- you want to modify or add to the resource.
newTagResource :: Text -> TagResource
-- | The Amazon Resource Name (ARN) of the resource that you want to add or
-- update tags for.
tagResource_resourceARN :: Lens' TagResource Text
-- | The tags that you want to modify or add to the resource.
tagResource_tags :: Lens' TagResource [Tag]
-- | See: newTagResourceResponse smart constructor.
data TagResourceResponse
TagResourceResponse' :: Int -> TagResourceResponse
-- | The response's http status code.
[$sel:httpStatus:TagResourceResponse'] :: TagResourceResponse -> Int
-- | Create a value of TagResourceResponse with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:TagResourceResponse',
-- tagResourceResponse_httpStatus - The response's http status
-- code.
newTagResourceResponse :: Int -> TagResourceResponse
-- | The response's http status code.
tagResourceResponse_httpStatus :: Lens' TagResourceResponse Int
instance GHC.Generics.Generic Amazonka.Shield.TagResource.TagResource
instance GHC.Show.Show Amazonka.Shield.TagResource.TagResource
instance GHC.Read.Read Amazonka.Shield.TagResource.TagResource
instance GHC.Classes.Eq Amazonka.Shield.TagResource.TagResource
instance GHC.Generics.Generic Amazonka.Shield.TagResource.TagResourceResponse
instance GHC.Show.Show Amazonka.Shield.TagResource.TagResourceResponse
instance GHC.Read.Read Amazonka.Shield.TagResource.TagResourceResponse
instance GHC.Classes.Eq Amazonka.Shield.TagResource.TagResourceResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.TagResource.TagResource
instance Control.DeepSeq.NFData Amazonka.Shield.TagResource.TagResourceResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.TagResource.TagResource
instance Control.DeepSeq.NFData Amazonka.Shield.TagResource.TagResource
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.TagResource.TagResource
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.TagResource.TagResource
instance Amazonka.Data.Path.ToPath Amazonka.Shield.TagResource.TagResource
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.TagResource.TagResource
-- | Gets information about Amazon Web Services tags for a specified Amazon
-- Resource Name (ARN) in Shield.
module Amazonka.Shield.ListTagsForResource
-- | See: newListTagsForResource smart constructor.
data ListTagsForResource
ListTagsForResource' :: Text -> ListTagsForResource
-- | The Amazon Resource Name (ARN) of the resource to get tags for.
[$sel:resourceARN:ListTagsForResource'] :: ListTagsForResource -> Text
-- | Create a value of ListTagsForResource with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:resourceARN:ListTagsForResource',
-- listTagsForResource_resourceARN - The Amazon Resource Name
-- (ARN) of the resource to get tags for.
newListTagsForResource :: Text -> ListTagsForResource
-- | The Amazon Resource Name (ARN) of the resource to get tags for.
listTagsForResource_resourceARN :: Lens' ListTagsForResource Text
-- | See: newListTagsForResourceResponse smart constructor.
data ListTagsForResourceResponse
ListTagsForResourceResponse' :: Maybe [Tag] -> Int -> ListTagsForResourceResponse
-- | A list of tag key and value pairs associated with the specified
-- resource.
[$sel:tags:ListTagsForResourceResponse'] :: ListTagsForResourceResponse -> Maybe [Tag]
-- | The response's http status code.
[$sel:httpStatus:ListTagsForResourceResponse'] :: ListTagsForResourceResponse -> Int
-- | Create a value of ListTagsForResourceResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:tags:ListTagsForResourceResponse',
-- listTagsForResourceResponse_tags - A list of tag key and value
-- pairs associated with the specified resource.
--
-- $sel:httpStatus:ListTagsForResourceResponse',
-- listTagsForResourceResponse_httpStatus - The response's http
-- status code.
newListTagsForResourceResponse :: Int -> ListTagsForResourceResponse
-- | A list of tag key and value pairs associated with the specified
-- resource.
listTagsForResourceResponse_tags :: Lens' ListTagsForResourceResponse (Maybe [Tag])
-- | The response's http status code.
listTagsForResourceResponse_httpStatus :: Lens' ListTagsForResourceResponse Int
instance GHC.Generics.Generic Amazonka.Shield.ListTagsForResource.ListTagsForResource
instance GHC.Show.Show Amazonka.Shield.ListTagsForResource.ListTagsForResource
instance GHC.Read.Read Amazonka.Shield.ListTagsForResource.ListTagsForResource
instance GHC.Classes.Eq Amazonka.Shield.ListTagsForResource.ListTagsForResource
instance GHC.Generics.Generic Amazonka.Shield.ListTagsForResource.ListTagsForResourceResponse
instance GHC.Show.Show Amazonka.Shield.ListTagsForResource.ListTagsForResourceResponse
instance GHC.Read.Read Amazonka.Shield.ListTagsForResource.ListTagsForResourceResponse
instance GHC.Classes.Eq Amazonka.Shield.ListTagsForResource.ListTagsForResourceResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.ListTagsForResource.ListTagsForResource
instance Control.DeepSeq.NFData Amazonka.Shield.ListTagsForResource.ListTagsForResourceResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.ListTagsForResource.ListTagsForResource
instance Control.DeepSeq.NFData Amazonka.Shield.ListTagsForResource.ListTagsForResource
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.ListTagsForResource.ListTagsForResource
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.ListTagsForResource.ListTagsForResource
instance Amazonka.Data.Path.ToPath Amazonka.Shield.ListTagsForResource.ListTagsForResource
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.ListTagsForResource.ListTagsForResource
-- | Retrieves the resources that are included in the protection group.
module Amazonka.Shield.ListResourcesInProtectionGroup
-- | See: newListResourcesInProtectionGroup smart
-- constructor.
data ListResourcesInProtectionGroup
ListResourcesInProtectionGroup' :: Maybe Natural -> Maybe Text -> Text -> ListResourcesInProtectionGroup
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
[$sel:maxResults:ListResourcesInProtectionGroup'] :: ListResourcesInProtectionGroup -> Maybe Natural
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
[$sel:nextToken:ListResourcesInProtectionGroup'] :: ListResourcesInProtectionGroup -> Maybe Text
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
[$sel:protectionGroupId:ListResourcesInProtectionGroup'] :: ListResourcesInProtectionGroup -> Text
-- | Create a value of ListResourcesInProtectionGroup with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:maxResults:ListResourcesInProtectionGroup',
-- listResourcesInProtectionGroup_maxResults - The greatest number
-- of objects that you want Shield Advanced to return to the list
-- request. Shield Advanced might return fewer objects than you indicate
-- in this setting, even if more objects are available. If there are more
-- objects remaining, Shield Advanced will always also return a
-- NextToken value in the response.
--
-- The default setting is 20.
--
-- ListResourcesInProtectionGroup,
-- listResourcesInProtectionGroup_nextToken - When you request a
-- list of objects from Shield Advanced, if the response does not include
-- all of the remaining available objects, Shield Advanced includes a
-- NextToken value in the response. You can retrieve the next
-- batch of objects by requesting the list again and providing the token
-- that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
--
-- ListResourcesInProtectionGroup,
-- listResourcesInProtectionGroup_protectionGroupId - The name of
-- the protection group. You use this to identify the protection group in
-- lists and to manage the protection group, for example to update,
-- delete, or describe it.
newListResourcesInProtectionGroup :: Text -> ListResourcesInProtectionGroup
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
listResourcesInProtectionGroup_maxResults :: Lens' ListResourcesInProtectionGroup (Maybe Natural)
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
listResourcesInProtectionGroup_nextToken :: Lens' ListResourcesInProtectionGroup (Maybe Text)
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
listResourcesInProtectionGroup_protectionGroupId :: Lens' ListResourcesInProtectionGroup Text
-- | See: newListResourcesInProtectionGroupResponse smart
-- constructor.
data ListResourcesInProtectionGroupResponse
ListResourcesInProtectionGroupResponse' :: Maybe Text -> Int -> [Text] -> ListResourcesInProtectionGroupResponse
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
[$sel:nextToken:ListResourcesInProtectionGroupResponse'] :: ListResourcesInProtectionGroupResponse -> Maybe Text
-- | The response's http status code.
[$sel:httpStatus:ListResourcesInProtectionGroupResponse'] :: ListResourcesInProtectionGroupResponse -> Int
-- | The Amazon Resource Names (ARNs) of the resources that are included in
-- the protection group.
[$sel:resourceArns:ListResourcesInProtectionGroupResponse'] :: ListResourcesInProtectionGroupResponse -> [Text]
-- | Create a value of ListResourcesInProtectionGroupResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- ListResourcesInProtectionGroup,
-- listResourcesInProtectionGroupResponse_nextToken - When you
-- request a list of objects from Shield Advanced, if the response does
-- not include all of the remaining available objects, Shield Advanced
-- includes a NextToken value in the response. You can retrieve
-- the next batch of objects by requesting the list again and providing
-- the token that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- $sel:httpStatus:ListResourcesInProtectionGroupResponse',
-- listResourcesInProtectionGroupResponse_httpStatus - The
-- response's http status code.
--
-- ListResourcesInProtectionGroupResponse,
-- listResourcesInProtectionGroupResponse_resourceArns - The
-- Amazon Resource Names (ARNs) of the resources that are included in the
-- protection group.
newListResourcesInProtectionGroupResponse :: Int -> ListResourcesInProtectionGroupResponse
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
listResourcesInProtectionGroupResponse_nextToken :: Lens' ListResourcesInProtectionGroupResponse (Maybe Text)
-- | The response's http status code.
listResourcesInProtectionGroupResponse_httpStatus :: Lens' ListResourcesInProtectionGroupResponse Int
-- | The Amazon Resource Names (ARNs) of the resources that are included in
-- the protection group.
listResourcesInProtectionGroupResponse_resourceArns :: Lens' ListResourcesInProtectionGroupResponse [Text]
instance GHC.Generics.Generic Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroup
instance GHC.Show.Show Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroup
instance GHC.Read.Read Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroup
instance GHC.Classes.Eq Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroup
instance GHC.Generics.Generic Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroupResponse
instance GHC.Show.Show Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroupResponse
instance GHC.Read.Read Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroupResponse
instance GHC.Classes.Eq Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroupResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroup
instance Control.DeepSeq.NFData Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroupResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroup
instance Control.DeepSeq.NFData Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroup
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroup
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroup
instance Amazonka.Data.Path.ToPath Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroup
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.ListResourcesInProtectionGroup.ListResourcesInProtectionGroup
-- | Retrieves Protection objects for the account. You can retrieve all
-- protections or you can provide filtering criteria and retrieve just
-- the subset of protections that match the criteria.
--
-- This operation returns paginated results.
module Amazonka.Shield.ListProtections
-- | See: newListProtections smart constructor.
data ListProtections
ListProtections' :: Maybe InclusionProtectionFilters -> Maybe Natural -> Maybe Text -> ListProtections
-- | Narrows the set of protections that the call retrieves. You can
-- retrieve a single protection by providing its name or the ARN (Amazon
-- Resource Name) of its protected resource. You can also retrieve all
-- protections for a specific resource type. You can provide up to one
-- criteria per filter type. Shield Advanced returns protections that
-- exactly match all of the filter criteria that you provide.
[$sel:inclusionFilters:ListProtections'] :: ListProtections -> Maybe InclusionProtectionFilters
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
[$sel:maxResults:ListProtections'] :: ListProtections -> Maybe Natural
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
[$sel:nextToken:ListProtections'] :: ListProtections -> Maybe Text
-- | Create a value of ListProtections with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:inclusionFilters:ListProtections',
-- listProtections_inclusionFilters - Narrows the set of
-- protections that the call retrieves. You can retrieve a single
-- protection by providing its name or the ARN (Amazon Resource Name) of
-- its protected resource. You can also retrieve all protections for a
-- specific resource type. You can provide up to one criteria per filter
-- type. Shield Advanced returns protections that exactly match all of
-- the filter criteria that you provide.
--
-- $sel:maxResults:ListProtections',
-- listProtections_maxResults - The greatest number of objects
-- that you want Shield Advanced to return to the list request. Shield
-- Advanced might return fewer objects than you indicate in this setting,
-- even if more objects are available. If there are more objects
-- remaining, Shield Advanced will always also return a
-- NextToken value in the response.
--
-- The default setting is 20.
--
-- ListProtections, listProtections_nextToken - When you
-- request a list of objects from Shield Advanced, if the response does
-- not include all of the remaining available objects, Shield Advanced
-- includes a NextToken value in the response. You can retrieve
-- the next batch of objects by requesting the list again and providing
-- the token that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
newListProtections :: ListProtections
-- | Narrows the set of protections that the call retrieves. You can
-- retrieve a single protection by providing its name or the ARN (Amazon
-- Resource Name) of its protected resource. You can also retrieve all
-- protections for a specific resource type. You can provide up to one
-- criteria per filter type. Shield Advanced returns protections that
-- exactly match all of the filter criteria that you provide.
listProtections_inclusionFilters :: Lens' ListProtections (Maybe InclusionProtectionFilters)
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
listProtections_maxResults :: Lens' ListProtections (Maybe Natural)
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
listProtections_nextToken :: Lens' ListProtections (Maybe Text)
-- | See: newListProtectionsResponse smart constructor.
data ListProtectionsResponse
ListProtectionsResponse' :: Maybe Text -> Maybe [Protection] -> Int -> ListProtectionsResponse
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
[$sel:nextToken:ListProtectionsResponse'] :: ListProtectionsResponse -> Maybe Text
-- | The array of enabled Protection objects.
[$sel:protections:ListProtectionsResponse'] :: ListProtectionsResponse -> Maybe [Protection]
-- | The response's http status code.
[$sel:httpStatus:ListProtectionsResponse'] :: ListProtectionsResponse -> Int
-- | Create a value of ListProtectionsResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- ListProtections, listProtectionsResponse_nextToken -
-- When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- $sel:protections:ListProtectionsResponse',
-- listProtectionsResponse_protections - The array of enabled
-- Protection objects.
--
-- $sel:httpStatus:ListProtectionsResponse',
-- listProtectionsResponse_httpStatus - The response's http status
-- code.
newListProtectionsResponse :: Int -> ListProtectionsResponse
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
listProtectionsResponse_nextToken :: Lens' ListProtectionsResponse (Maybe Text)
-- | The array of enabled Protection objects.
listProtectionsResponse_protections :: Lens' ListProtectionsResponse (Maybe [Protection])
-- | The response's http status code.
listProtectionsResponse_httpStatus :: Lens' ListProtectionsResponse Int
instance GHC.Generics.Generic Amazonka.Shield.ListProtections.ListProtections
instance GHC.Show.Show Amazonka.Shield.ListProtections.ListProtections
instance GHC.Read.Read Amazonka.Shield.ListProtections.ListProtections
instance GHC.Classes.Eq Amazonka.Shield.ListProtections.ListProtections
instance GHC.Generics.Generic Amazonka.Shield.ListProtections.ListProtectionsResponse
instance GHC.Show.Show Amazonka.Shield.ListProtections.ListProtectionsResponse
instance GHC.Read.Read Amazonka.Shield.ListProtections.ListProtectionsResponse
instance GHC.Classes.Eq Amazonka.Shield.ListProtections.ListProtectionsResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.ListProtections.ListProtections
instance Control.DeepSeq.NFData Amazonka.Shield.ListProtections.ListProtectionsResponse
instance Amazonka.Pager.AWSPager Amazonka.Shield.ListProtections.ListProtections
instance Data.Hashable.Class.Hashable Amazonka.Shield.ListProtections.ListProtections
instance Control.DeepSeq.NFData Amazonka.Shield.ListProtections.ListProtections
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.ListProtections.ListProtections
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.ListProtections.ListProtections
instance Amazonka.Data.Path.ToPath Amazonka.Shield.ListProtections.ListProtections
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.ListProtections.ListProtections
-- | Retrieves ProtectionGroup objects for the account. You can retrieve
-- all protection groups or you can provide filtering criteria and
-- retrieve just the subset of protection groups that match the criteria.
module Amazonka.Shield.ListProtectionGroups
-- | See: newListProtectionGroups smart constructor.
data ListProtectionGroups
ListProtectionGroups' :: Maybe InclusionProtectionGroupFilters -> Maybe Natural -> Maybe Text -> ListProtectionGroups
-- | Narrows the set of protection groups that the call retrieves. You can
-- retrieve a single protection group by its name and you can retrieve
-- all protection groups that are configured with specific pattern or
-- aggregation settings. You can provide up to one criteria per filter
-- type. Shield Advanced returns the protection groups that exactly match
-- all of the search criteria that you provide.
[$sel:inclusionFilters:ListProtectionGroups'] :: ListProtectionGroups -> Maybe InclusionProtectionGroupFilters
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
[$sel:maxResults:ListProtectionGroups'] :: ListProtectionGroups -> Maybe Natural
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
[$sel:nextToken:ListProtectionGroups'] :: ListProtectionGroups -> Maybe Text
-- | Create a value of ListProtectionGroups with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:inclusionFilters:ListProtectionGroups',
-- listProtectionGroups_inclusionFilters - Narrows the set of
-- protection groups that the call retrieves. You can retrieve a single
-- protection group by its name and you can retrieve all protection
-- groups that are configured with specific pattern or aggregation
-- settings. You can provide up to one criteria per filter type. Shield
-- Advanced returns the protection groups that exactly match all of the
-- search criteria that you provide.
--
-- $sel:maxResults:ListProtectionGroups',
-- listProtectionGroups_maxResults - The greatest number of
-- objects that you want Shield Advanced to return to the list request.
-- Shield Advanced might return fewer objects than you indicate in this
-- setting, even if more objects are available. If there are more objects
-- remaining, Shield Advanced will always also return a
-- NextToken value in the response.
--
-- The default setting is 20.
--
-- ListProtectionGroups, listProtectionGroups_nextToken -
-- When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
newListProtectionGroups :: ListProtectionGroups
-- | Narrows the set of protection groups that the call retrieves. You can
-- retrieve a single protection group by its name and you can retrieve
-- all protection groups that are configured with specific pattern or
-- aggregation settings. You can provide up to one criteria per filter
-- type. Shield Advanced returns the protection groups that exactly match
-- all of the search criteria that you provide.
listProtectionGroups_inclusionFilters :: Lens' ListProtectionGroups (Maybe InclusionProtectionGroupFilters)
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
listProtectionGroups_maxResults :: Lens' ListProtectionGroups (Maybe Natural)
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
listProtectionGroups_nextToken :: Lens' ListProtectionGroups (Maybe Text)
-- | See: newListProtectionGroupsResponse smart constructor.
data ListProtectionGroupsResponse
ListProtectionGroupsResponse' :: Maybe Text -> Int -> [ProtectionGroup] -> ListProtectionGroupsResponse
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
[$sel:nextToken:ListProtectionGroupsResponse'] :: ListProtectionGroupsResponse -> Maybe Text
-- | The response's http status code.
[$sel:httpStatus:ListProtectionGroupsResponse'] :: ListProtectionGroupsResponse -> Int
[$sel:protectionGroups:ListProtectionGroupsResponse'] :: ListProtectionGroupsResponse -> [ProtectionGroup]
-- | Create a value of ListProtectionGroupsResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- ListProtectionGroups,
-- listProtectionGroupsResponse_nextToken - When you request a
-- list of objects from Shield Advanced, if the response does not include
-- all of the remaining available objects, Shield Advanced includes a
-- NextToken value in the response. You can retrieve the next
-- batch of objects by requesting the list again and providing the token
-- that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- $sel:httpStatus:ListProtectionGroupsResponse',
-- listProtectionGroupsResponse_httpStatus - The response's http
-- status code.
--
-- $sel:protectionGroups:ListProtectionGroupsResponse',
-- listProtectionGroupsResponse_protectionGroups -
newListProtectionGroupsResponse :: Int -> ListProtectionGroupsResponse
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
listProtectionGroupsResponse_nextToken :: Lens' ListProtectionGroupsResponse (Maybe Text)
-- | The response's http status code.
listProtectionGroupsResponse_httpStatus :: Lens' ListProtectionGroupsResponse Int
listProtectionGroupsResponse_protectionGroups :: Lens' ListProtectionGroupsResponse [ProtectionGroup]
instance GHC.Generics.Generic Amazonka.Shield.ListProtectionGroups.ListProtectionGroups
instance GHC.Show.Show Amazonka.Shield.ListProtectionGroups.ListProtectionGroups
instance GHC.Read.Read Amazonka.Shield.ListProtectionGroups.ListProtectionGroups
instance GHC.Classes.Eq Amazonka.Shield.ListProtectionGroups.ListProtectionGroups
instance GHC.Generics.Generic Amazonka.Shield.ListProtectionGroups.ListProtectionGroupsResponse
instance GHC.Show.Show Amazonka.Shield.ListProtectionGroups.ListProtectionGroupsResponse
instance GHC.Read.Read Amazonka.Shield.ListProtectionGroups.ListProtectionGroupsResponse
instance GHC.Classes.Eq Amazonka.Shield.ListProtectionGroups.ListProtectionGroupsResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.ListProtectionGroups.ListProtectionGroups
instance Control.DeepSeq.NFData Amazonka.Shield.ListProtectionGroups.ListProtectionGroupsResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.ListProtectionGroups.ListProtectionGroups
instance Control.DeepSeq.NFData Amazonka.Shield.ListProtectionGroups.ListProtectionGroups
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.ListProtectionGroups.ListProtectionGroups
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.ListProtectionGroups.ListProtectionGroups
instance Amazonka.Data.Path.ToPath Amazonka.Shield.ListProtectionGroups.ListProtectionGroups
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.ListProtectionGroups.ListProtectionGroups
-- | Returns all ongoing DDoS attacks or all DDoS attacks during a
-- specified time period.
--
-- This operation returns paginated results.
module Amazonka.Shield.ListAttacks
-- | See: newListAttacks smart constructor.
data ListAttacks
ListAttacks' :: Maybe TimeRange -> Maybe Natural -> Maybe Text -> Maybe [Text] -> Maybe TimeRange -> ListAttacks
-- | The end of the time period for the attacks. This is a
-- timestamp type. The request syntax listing for this call
-- indicates a number type, but you can provide the time in any
-- valid timestamp format setting.
[$sel:endTime:ListAttacks'] :: ListAttacks -> Maybe TimeRange
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
[$sel:maxResults:ListAttacks'] :: ListAttacks -> Maybe Natural
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
[$sel:nextToken:ListAttacks'] :: ListAttacks -> Maybe Text
-- | The ARNs (Amazon Resource Names) of the resources that were attacked.
-- If you leave this blank, all applicable resources for this account
-- will be included.
[$sel:resourceArns:ListAttacks'] :: ListAttacks -> Maybe [Text]
-- | The start of the time period for the attacks. This is a
-- timestamp type. The request syntax listing for this call
-- indicates a number type, but you can provide the time in any
-- valid timestamp format setting.
[$sel:startTime:ListAttacks'] :: ListAttacks -> Maybe TimeRange
-- | Create a value of ListAttacks with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- ListAttacks, listAttacks_endTime - The end of the time
-- period for the attacks. This is a timestamp type. The request
-- syntax listing for this call indicates a number type, but you
-- can provide the time in any valid timestamp format setting.
--
-- $sel:maxResults:ListAttacks', listAttacks_maxResults -
-- The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
--
-- ListAttacks, listAttacks_nextToken - When you request a
-- list of objects from Shield Advanced, if the response does not include
-- all of the remaining available objects, Shield Advanced includes a
-- NextToken value in the response. You can retrieve the next
-- batch of objects by requesting the list again and providing the token
-- that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
--
-- ListAttacks, listAttacks_resourceArns - The ARNs (Amazon
-- Resource Names) of the resources that were attacked. If you leave this
-- blank, all applicable resources for this account will be included.
--
-- ListAttacks, listAttacks_startTime - The start of the
-- time period for the attacks. This is a timestamp type. The
-- request syntax listing for this call indicates a number type,
-- but you can provide the time in any valid timestamp format
-- setting.
newListAttacks :: ListAttacks
-- | The end of the time period for the attacks. This is a
-- timestamp type. The request syntax listing for this call
-- indicates a number type, but you can provide the time in any
-- valid timestamp format setting.
listAttacks_endTime :: Lens' ListAttacks (Maybe TimeRange)
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
listAttacks_maxResults :: Lens' ListAttacks (Maybe Natural)
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
listAttacks_nextToken :: Lens' ListAttacks (Maybe Text)
-- | The ARNs (Amazon Resource Names) of the resources that were attacked.
-- If you leave this blank, all applicable resources for this account
-- will be included.
listAttacks_resourceArns :: Lens' ListAttacks (Maybe [Text])
-- | The start of the time period for the attacks. This is a
-- timestamp type. The request syntax listing for this call
-- indicates a number type, but you can provide the time in any
-- valid timestamp format setting.
listAttacks_startTime :: Lens' ListAttacks (Maybe TimeRange)
-- | See: newListAttacksResponse smart constructor.
data ListAttacksResponse
ListAttacksResponse' :: Maybe [AttackSummary] -> Maybe Text -> Int -> ListAttacksResponse
-- | The attack information for the specified time range.
[$sel:attackSummaries:ListAttacksResponse'] :: ListAttacksResponse -> Maybe [AttackSummary]
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
[$sel:nextToken:ListAttacksResponse'] :: ListAttacksResponse -> Maybe Text
-- | The response's http status code.
[$sel:httpStatus:ListAttacksResponse'] :: ListAttacksResponse -> Int
-- | Create a value of ListAttacksResponse with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackSummaries:ListAttacksResponse',
-- listAttacksResponse_attackSummaries - The attack information
-- for the specified time range.
--
-- ListAttacks, listAttacksResponse_nextToken - When you
-- request a list of objects from Shield Advanced, if the response does
-- not include all of the remaining available objects, Shield Advanced
-- includes a NextToken value in the response. You can retrieve
-- the next batch of objects by requesting the list again and providing
-- the token that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- $sel:httpStatus:ListAttacksResponse',
-- listAttacksResponse_httpStatus - The response's http status
-- code.
newListAttacksResponse :: Int -> ListAttacksResponse
-- | The attack information for the specified time range.
listAttacksResponse_attackSummaries :: Lens' ListAttacksResponse (Maybe [AttackSummary])
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
listAttacksResponse_nextToken :: Lens' ListAttacksResponse (Maybe Text)
-- | The response's http status code.
listAttacksResponse_httpStatus :: Lens' ListAttacksResponse Int
instance GHC.Generics.Generic Amazonka.Shield.ListAttacks.ListAttacks
instance GHC.Show.Show Amazonka.Shield.ListAttacks.ListAttacks
instance GHC.Read.Read Amazonka.Shield.ListAttacks.ListAttacks
instance GHC.Classes.Eq Amazonka.Shield.ListAttacks.ListAttacks
instance GHC.Generics.Generic Amazonka.Shield.ListAttacks.ListAttacksResponse
instance GHC.Show.Show Amazonka.Shield.ListAttacks.ListAttacksResponse
instance GHC.Read.Read Amazonka.Shield.ListAttacks.ListAttacksResponse
instance GHC.Classes.Eq Amazonka.Shield.ListAttacks.ListAttacksResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.ListAttacks.ListAttacks
instance Control.DeepSeq.NFData Amazonka.Shield.ListAttacks.ListAttacksResponse
instance Amazonka.Pager.AWSPager Amazonka.Shield.ListAttacks.ListAttacks
instance Data.Hashable.Class.Hashable Amazonka.Shield.ListAttacks.ListAttacks
instance Control.DeepSeq.NFData Amazonka.Shield.ListAttacks.ListAttacks
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.ListAttacks.ListAttacks
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.ListAttacks.ListAttacks
instance Amazonka.Data.Path.ToPath Amazonka.Shield.ListAttacks.ListAttacks
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.ListAttacks.ListAttacks
-- | Returns the SubscriptionState, either Active or
-- Inactive.
module Amazonka.Shield.GetSubscriptionState
-- | See: newGetSubscriptionState smart constructor.
data GetSubscriptionState
GetSubscriptionState' :: GetSubscriptionState
-- | Create a value of GetSubscriptionState with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newGetSubscriptionState :: GetSubscriptionState
-- | See: newGetSubscriptionStateResponse smart constructor.
data GetSubscriptionStateResponse
GetSubscriptionStateResponse' :: Int -> SubscriptionState -> GetSubscriptionStateResponse
-- | The response's http status code.
[$sel:httpStatus:GetSubscriptionStateResponse'] :: GetSubscriptionStateResponse -> Int
-- | The status of the subscription.
[$sel:subscriptionState:GetSubscriptionStateResponse'] :: GetSubscriptionStateResponse -> SubscriptionState
-- | Create a value of GetSubscriptionStateResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:GetSubscriptionStateResponse',
-- getSubscriptionStateResponse_httpStatus - The response's http
-- status code.
--
-- $sel:subscriptionState:GetSubscriptionStateResponse',
-- getSubscriptionStateResponse_subscriptionState - The status of
-- the subscription.
newGetSubscriptionStateResponse :: Int -> SubscriptionState -> GetSubscriptionStateResponse
-- | The response's http status code.
getSubscriptionStateResponse_httpStatus :: Lens' GetSubscriptionStateResponse Int
-- | The status of the subscription.
getSubscriptionStateResponse_subscriptionState :: Lens' GetSubscriptionStateResponse SubscriptionState
instance GHC.Generics.Generic Amazonka.Shield.GetSubscriptionState.GetSubscriptionState
instance GHC.Show.Show Amazonka.Shield.GetSubscriptionState.GetSubscriptionState
instance GHC.Read.Read Amazonka.Shield.GetSubscriptionState.GetSubscriptionState
instance GHC.Classes.Eq Amazonka.Shield.GetSubscriptionState.GetSubscriptionState
instance GHC.Generics.Generic Amazonka.Shield.GetSubscriptionState.GetSubscriptionStateResponse
instance GHC.Show.Show Amazonka.Shield.GetSubscriptionState.GetSubscriptionStateResponse
instance GHC.Read.Read Amazonka.Shield.GetSubscriptionState.GetSubscriptionStateResponse
instance GHC.Classes.Eq Amazonka.Shield.GetSubscriptionState.GetSubscriptionStateResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.GetSubscriptionState.GetSubscriptionState
instance Control.DeepSeq.NFData Amazonka.Shield.GetSubscriptionState.GetSubscriptionStateResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.GetSubscriptionState.GetSubscriptionState
instance Control.DeepSeq.NFData Amazonka.Shield.GetSubscriptionState.GetSubscriptionState
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.GetSubscriptionState.GetSubscriptionState
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.GetSubscriptionState.GetSubscriptionState
instance Amazonka.Data.Path.ToPath Amazonka.Shield.GetSubscriptionState.GetSubscriptionState
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.GetSubscriptionState.GetSubscriptionState
-- | Authorizes the Shield Response Team (SRT) to use email and phone to
-- notify contacts about escalations to the SRT and to initiate proactive
-- customer support.
module Amazonka.Shield.EnableProactiveEngagement
-- | See: newEnableProactiveEngagement smart constructor.
data EnableProactiveEngagement
EnableProactiveEngagement' :: EnableProactiveEngagement
-- | Create a value of EnableProactiveEngagement with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newEnableProactiveEngagement :: EnableProactiveEngagement
-- | See: newEnableProactiveEngagementResponse smart
-- constructor.
data EnableProactiveEngagementResponse
EnableProactiveEngagementResponse' :: Int -> EnableProactiveEngagementResponse
-- | The response's http status code.
[$sel:httpStatus:EnableProactiveEngagementResponse'] :: EnableProactiveEngagementResponse -> Int
-- | Create a value of EnableProactiveEngagementResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:EnableProactiveEngagementResponse',
-- enableProactiveEngagementResponse_httpStatus - The response's
-- http status code.
newEnableProactiveEngagementResponse :: Int -> EnableProactiveEngagementResponse
-- | The response's http status code.
enableProactiveEngagementResponse_httpStatus :: Lens' EnableProactiveEngagementResponse Int
instance GHC.Generics.Generic Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagement
instance GHC.Show.Show Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagement
instance GHC.Read.Read Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagement
instance GHC.Classes.Eq Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagement
instance GHC.Generics.Generic Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagementResponse
instance GHC.Show.Show Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagementResponse
instance GHC.Read.Read Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagementResponse
instance GHC.Classes.Eq Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagementResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagement
instance Control.DeepSeq.NFData Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagementResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagement
instance Control.DeepSeq.NFData Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagement
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagement
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagement
instance Amazonka.Data.Path.ToPath Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagement
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.EnableProactiveEngagement.EnableProactiveEngagement
-- | Enable the Shield Advanced automatic application layer DDoS mitigation
-- for the protected resource.
--
-- This feature is available for Amazon CloudFront distributions and
-- Application Load Balancers only.
--
-- This causes Shield Advanced to create, verify, and apply WAF rules for
-- DDoS attacks that it detects for the resource. Shield Advanced applies
-- the rules in a Shield rule group inside the web ACL that you've
-- associated with the resource. For information about how automatic
-- mitigation works and the requirements for using it, see Shield
-- Advanced automatic application layer DDoS mitigation.
--
-- Don't use this action to make changes to automatic mitigation settings
-- when it's already enabled for a resource. Instead, use
-- UpdateApplicationLayerAutomaticResponse.
--
-- To use this feature, you must associate a web ACL with the protected
-- resource. The web ACL must be created using the latest version of WAF
-- (v2). You can associate the web ACL through the Shield Advanced
-- console at https://console.aws.amazon.com/wafv2/shieldv2#/. For
-- more information, see Getting Started with Shield Advanced. You
-- can also associate the web ACL to the resource through the WAF console
-- or the WAF API, but you must manage Shield Advanced automatic
-- mitigation through Shield Advanced. For information about WAF, see
-- WAF Developer Guide.
module Amazonka.Shield.EnableApplicationLayerAutomaticResponse
-- | See: newEnableApplicationLayerAutomaticResponse smart
-- constructor.
data EnableApplicationLayerAutomaticResponse
EnableApplicationLayerAutomaticResponse' :: Text -> ResponseAction -> EnableApplicationLayerAutomaticResponse
-- | The ARN (Amazon Resource Name) of the protected resource.
[$sel:resourceArn:EnableApplicationLayerAutomaticResponse'] :: EnableApplicationLayerAutomaticResponse -> Text
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
[$sel:action:EnableApplicationLayerAutomaticResponse'] :: EnableApplicationLayerAutomaticResponse -> ResponseAction
-- | Create a value of EnableApplicationLayerAutomaticResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- EnableApplicationLayerAutomaticResponse,
-- enableApplicationLayerAutomaticResponse_resourceArn - The ARN
-- (Amazon Resource Name) of the protected resource.
--
-- EnableApplicationLayerAutomaticResponse,
-- enableApplicationLayerAutomaticResponse_action - Specifies the
-- action setting that Shield Advanced should use in the WAF rules that
-- it creates on behalf of the protected resource in response to DDoS
-- attacks. You specify this as part of the configuration for the
-- automatic application layer DDoS mitigation feature, when you enable
-- or update automatic mitigation. Shield Advanced creates the WAF rules
-- in a Shield Advanced-managed rule group, inside the web ACL that you
-- have associated with the resource.
newEnableApplicationLayerAutomaticResponse :: Text -> ResponseAction -> EnableApplicationLayerAutomaticResponse
-- | The ARN (Amazon Resource Name) of the protected resource.
enableApplicationLayerAutomaticResponse_resourceArn :: Lens' EnableApplicationLayerAutomaticResponse Text
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
enableApplicationLayerAutomaticResponse_action :: Lens' EnableApplicationLayerAutomaticResponse ResponseAction
-- | See: newEnableApplicationLayerAutomaticResponseResponse
-- smart constructor.
data EnableApplicationLayerAutomaticResponseResponse
EnableApplicationLayerAutomaticResponseResponse' :: Int -> EnableApplicationLayerAutomaticResponseResponse
-- | The response's http status code.
[$sel:httpStatus:EnableApplicationLayerAutomaticResponseResponse'] :: EnableApplicationLayerAutomaticResponseResponse -> Int
-- | Create a value of
-- EnableApplicationLayerAutomaticResponseResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
--
-- $sel:httpStatus:EnableApplicationLayerAutomaticResponseResponse',
-- enableApplicationLayerAutomaticResponseResponse_httpStatus -
-- The response's http status code.
newEnableApplicationLayerAutomaticResponseResponse :: Int -> EnableApplicationLayerAutomaticResponseResponse
-- | The response's http status code.
enableApplicationLayerAutomaticResponseResponse_httpStatus :: Lens' EnableApplicationLayerAutomaticResponseResponse Int
instance GHC.Generics.Generic Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponse
instance GHC.Show.Show Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponse
instance GHC.Read.Read Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponse
instance GHC.Classes.Eq Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponse
instance GHC.Generics.Generic Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponseResponse
instance GHC.Show.Show Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponseResponse
instance GHC.Read.Read Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponseResponse
instance GHC.Classes.Eq Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponseResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponse
instance Control.DeepSeq.NFData Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponseResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponse
instance Control.DeepSeq.NFData Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponse
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponse
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponse
instance Amazonka.Data.Path.ToPath Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponse
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.EnableApplicationLayerAutomaticResponse.EnableApplicationLayerAutomaticResponse
-- | Removes health-based detection from the Shield Advanced protection for
-- a resource. Shield Advanced health-based detection uses the health of
-- your Amazon Web Services resource to improve responsiveness and
-- accuracy in attack detection and response.
--
-- You define the health check in Route 53 and then associate or
-- disassociate it with your Shield Advanced protection. For more
-- information, see Shield Advanced Health-Based Detection in the
-- WAF Developer Guide.
module Amazonka.Shield.DisassociateHealthCheck
-- | See: newDisassociateHealthCheck smart constructor.
data DisassociateHealthCheck
DisassociateHealthCheck' :: Text -> Text -> DisassociateHealthCheck
-- | The unique identifier (ID) for the Protection object to remove the
-- health check association from.
[$sel:protectionId:DisassociateHealthCheck'] :: DisassociateHealthCheck -> Text
-- | The Amazon Resource Name (ARN) of the health check that is associated
-- with the protection.
[$sel:healthCheckArn:DisassociateHealthCheck'] :: DisassociateHealthCheck -> Text
-- | Create a value of DisassociateHealthCheck with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionId:DisassociateHealthCheck',
-- disassociateHealthCheck_protectionId - The unique identifier
-- (ID) for the Protection object to remove the health check association
-- from.
--
-- $sel:healthCheckArn:DisassociateHealthCheck',
-- disassociateHealthCheck_healthCheckArn - The Amazon Resource
-- Name (ARN) of the health check that is associated with the protection.
newDisassociateHealthCheck :: Text -> Text -> DisassociateHealthCheck
-- | The unique identifier (ID) for the Protection object to remove the
-- health check association from.
disassociateHealthCheck_protectionId :: Lens' DisassociateHealthCheck Text
-- | The Amazon Resource Name (ARN) of the health check that is associated
-- with the protection.
disassociateHealthCheck_healthCheckArn :: Lens' DisassociateHealthCheck Text
-- | See: newDisassociateHealthCheckResponse smart
-- constructor.
data DisassociateHealthCheckResponse
DisassociateHealthCheckResponse' :: Int -> DisassociateHealthCheckResponse
-- | The response's http status code.
[$sel:httpStatus:DisassociateHealthCheckResponse'] :: DisassociateHealthCheckResponse -> Int
-- | Create a value of DisassociateHealthCheckResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DisassociateHealthCheckResponse',
-- disassociateHealthCheckResponse_httpStatus - The response's
-- http status code.
newDisassociateHealthCheckResponse :: Int -> DisassociateHealthCheckResponse
-- | The response's http status code.
disassociateHealthCheckResponse_httpStatus :: Lens' DisassociateHealthCheckResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheck
instance GHC.Show.Show Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheck
instance GHC.Read.Read Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheck
instance GHC.Classes.Eq Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheck
instance GHC.Generics.Generic Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheckResponse
instance GHC.Show.Show Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheckResponse
instance GHC.Read.Read Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheckResponse
instance GHC.Classes.Eq Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheckResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheck
instance Control.DeepSeq.NFData Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheckResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheck
instance Control.DeepSeq.NFData Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheck
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheck
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheck
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheck
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DisassociateHealthCheck.DisassociateHealthCheck
-- | Removes the Shield Response Team's (SRT) access to your Amazon Web
-- Services account.
module Amazonka.Shield.DisassociateDRTRole
-- | See: newDisassociateDRTRole smart constructor.
data DisassociateDRTRole
DisassociateDRTRole' :: DisassociateDRTRole
-- | Create a value of DisassociateDRTRole with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDisassociateDRTRole :: DisassociateDRTRole
-- | See: newDisassociateDRTRoleResponse smart constructor.
data DisassociateDRTRoleResponse
DisassociateDRTRoleResponse' :: Int -> DisassociateDRTRoleResponse
-- | The response's http status code.
[$sel:httpStatus:DisassociateDRTRoleResponse'] :: DisassociateDRTRoleResponse -> Int
-- | Create a value of DisassociateDRTRoleResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DisassociateDRTRoleResponse',
-- disassociateDRTRoleResponse_httpStatus - The response's http
-- status code.
newDisassociateDRTRoleResponse :: Int -> DisassociateDRTRoleResponse
-- | The response's http status code.
disassociateDRTRoleResponse_httpStatus :: Lens' DisassociateDRTRoleResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRole
instance GHC.Show.Show Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRole
instance GHC.Read.Read Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRole
instance GHC.Classes.Eq Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRole
instance GHC.Generics.Generic Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRoleResponse
instance GHC.Show.Show Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRoleResponse
instance GHC.Read.Read Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRoleResponse
instance GHC.Classes.Eq Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRoleResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRole
instance Control.DeepSeq.NFData Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRoleResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRole
instance Control.DeepSeq.NFData Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRole
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRole
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRole
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRole
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DisassociateDRTRole.DisassociateDRTRole
-- | Removes the Shield Response Team's (SRT) access to the specified
-- Amazon S3 bucket containing the logs that you shared previously.
module Amazonka.Shield.DisassociateDRTLogBucket
-- | See: newDisassociateDRTLogBucket smart constructor.
data DisassociateDRTLogBucket
DisassociateDRTLogBucket' :: Text -> DisassociateDRTLogBucket
-- | The Amazon S3 bucket that contains the logs that you want to share.
[$sel:logBucket:DisassociateDRTLogBucket'] :: DisassociateDRTLogBucket -> Text
-- | Create a value of DisassociateDRTLogBucket with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:logBucket:DisassociateDRTLogBucket',
-- disassociateDRTLogBucket_logBucket - The Amazon S3 bucket that
-- contains the logs that you want to share.
newDisassociateDRTLogBucket :: Text -> DisassociateDRTLogBucket
-- | The Amazon S3 bucket that contains the logs that you want to share.
disassociateDRTLogBucket_logBucket :: Lens' DisassociateDRTLogBucket Text
-- | See: newDisassociateDRTLogBucketResponse smart
-- constructor.
data DisassociateDRTLogBucketResponse
DisassociateDRTLogBucketResponse' :: Int -> DisassociateDRTLogBucketResponse
-- | The response's http status code.
[$sel:httpStatus:DisassociateDRTLogBucketResponse'] :: DisassociateDRTLogBucketResponse -> Int
-- | Create a value of DisassociateDRTLogBucketResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DisassociateDRTLogBucketResponse',
-- disassociateDRTLogBucketResponse_httpStatus - The response's
-- http status code.
newDisassociateDRTLogBucketResponse :: Int -> DisassociateDRTLogBucketResponse
-- | The response's http status code.
disassociateDRTLogBucketResponse_httpStatus :: Lens' DisassociateDRTLogBucketResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucket
instance GHC.Show.Show Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucket
instance GHC.Read.Read Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucket
instance GHC.Classes.Eq Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucket
instance GHC.Generics.Generic Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucketResponse
instance GHC.Show.Show Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucketResponse
instance GHC.Read.Read Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucketResponse
instance GHC.Classes.Eq Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucketResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucket
instance Control.DeepSeq.NFData Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucketResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucket
instance Control.DeepSeq.NFData Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucket
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucket
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucket
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucket
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DisassociateDRTLogBucket.DisassociateDRTLogBucket
-- | Removes authorization from the Shield Response Team (SRT) to notify
-- contacts about escalations to the SRT and to initiate proactive
-- customer support.
module Amazonka.Shield.DisableProactiveEngagement
-- | See: newDisableProactiveEngagement smart constructor.
data DisableProactiveEngagement
DisableProactiveEngagement' :: DisableProactiveEngagement
-- | Create a value of DisableProactiveEngagement with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDisableProactiveEngagement :: DisableProactiveEngagement
-- | See: newDisableProactiveEngagementResponse smart
-- constructor.
data DisableProactiveEngagementResponse
DisableProactiveEngagementResponse' :: Int -> DisableProactiveEngagementResponse
-- | The response's http status code.
[$sel:httpStatus:DisableProactiveEngagementResponse'] :: DisableProactiveEngagementResponse -> Int
-- | Create a value of DisableProactiveEngagementResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DisableProactiveEngagementResponse',
-- disableProactiveEngagementResponse_httpStatus - The response's
-- http status code.
newDisableProactiveEngagementResponse :: Int -> DisableProactiveEngagementResponse
-- | The response's http status code.
disableProactiveEngagementResponse_httpStatus :: Lens' DisableProactiveEngagementResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagement
instance GHC.Show.Show Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagement
instance GHC.Read.Read Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagement
instance GHC.Classes.Eq Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagement
instance GHC.Generics.Generic Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagementResponse
instance GHC.Show.Show Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagementResponse
instance GHC.Read.Read Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagementResponse
instance GHC.Classes.Eq Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagementResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagement
instance Control.DeepSeq.NFData Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagementResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagement
instance Control.DeepSeq.NFData Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagement
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagement
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagement
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagement
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DisableProactiveEngagement.DisableProactiveEngagement
-- | Disable the Shield Advanced automatic application layer DDoS
-- mitigation feature for the protected resource. This stops Shield
-- Advanced from creating, verifying, and applying WAF rules for attacks
-- that it detects for the resource.
module Amazonka.Shield.DisableApplicationLayerAutomaticResponse
-- | See: newDisableApplicationLayerAutomaticResponse smart
-- constructor.
data DisableApplicationLayerAutomaticResponse
DisableApplicationLayerAutomaticResponse' :: Text -> DisableApplicationLayerAutomaticResponse
-- | The ARN (Amazon Resource Name) of the protected resource.
[$sel:resourceArn:DisableApplicationLayerAutomaticResponse'] :: DisableApplicationLayerAutomaticResponse -> Text
-- | Create a value of DisableApplicationLayerAutomaticResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- DisableApplicationLayerAutomaticResponse,
-- disableApplicationLayerAutomaticResponse_resourceArn - The ARN
-- (Amazon Resource Name) of the protected resource.
newDisableApplicationLayerAutomaticResponse :: Text -> DisableApplicationLayerAutomaticResponse
-- | The ARN (Amazon Resource Name) of the protected resource.
disableApplicationLayerAutomaticResponse_resourceArn :: Lens' DisableApplicationLayerAutomaticResponse Text
-- | See: newDisableApplicationLayerAutomaticResponseResponse
-- smart constructor.
data DisableApplicationLayerAutomaticResponseResponse
DisableApplicationLayerAutomaticResponseResponse' :: Int -> DisableApplicationLayerAutomaticResponseResponse
-- | The response's http status code.
[$sel:httpStatus:DisableApplicationLayerAutomaticResponseResponse'] :: DisableApplicationLayerAutomaticResponseResponse -> Int
-- | Create a value of
-- DisableApplicationLayerAutomaticResponseResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
--
-- $sel:httpStatus:DisableApplicationLayerAutomaticResponseResponse',
-- disableApplicationLayerAutomaticResponseResponse_httpStatus -
-- The response's http status code.
newDisableApplicationLayerAutomaticResponseResponse :: Int -> DisableApplicationLayerAutomaticResponseResponse
-- | The response's http status code.
disableApplicationLayerAutomaticResponseResponse_httpStatus :: Lens' DisableApplicationLayerAutomaticResponseResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponse
instance GHC.Show.Show Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponse
instance GHC.Read.Read Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponse
instance GHC.Classes.Eq Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponse
instance GHC.Generics.Generic Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponseResponse
instance GHC.Show.Show Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponseResponse
instance GHC.Read.Read Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponseResponse
instance GHC.Classes.Eq Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponseResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponse
instance Control.DeepSeq.NFData Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponseResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponse
instance Control.DeepSeq.NFData Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponse
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponse
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponse
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponse
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DisableApplicationLayerAutomaticResponse.DisableApplicationLayerAutomaticResponse
-- | Provides details about the Shield Advanced subscription for an
-- account.
module Amazonka.Shield.DescribeSubscription
-- | See: newDescribeSubscription smart constructor.
data DescribeSubscription
DescribeSubscription' :: DescribeSubscription
-- | Create a value of DescribeSubscription with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDescribeSubscription :: DescribeSubscription
-- | See: newDescribeSubscriptionResponse smart constructor.
data DescribeSubscriptionResponse
DescribeSubscriptionResponse' :: Maybe Subscription -> Int -> DescribeSubscriptionResponse
-- | The Shield Advanced subscription details for an account.
[$sel:subscription:DescribeSubscriptionResponse'] :: DescribeSubscriptionResponse -> Maybe Subscription
-- | The response's http status code.
[$sel:httpStatus:DescribeSubscriptionResponse'] :: DescribeSubscriptionResponse -> Int
-- | Create a value of DescribeSubscriptionResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:subscription:DescribeSubscriptionResponse',
-- describeSubscriptionResponse_subscription - The Shield Advanced
-- subscription details for an account.
--
-- $sel:httpStatus:DescribeSubscriptionResponse',
-- describeSubscriptionResponse_httpStatus - The response's http
-- status code.
newDescribeSubscriptionResponse :: Int -> DescribeSubscriptionResponse
-- | The Shield Advanced subscription details for an account.
describeSubscriptionResponse_subscription :: Lens' DescribeSubscriptionResponse (Maybe Subscription)
-- | The response's http status code.
describeSubscriptionResponse_httpStatus :: Lens' DescribeSubscriptionResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DescribeSubscription.DescribeSubscription
instance GHC.Show.Show Amazonka.Shield.DescribeSubscription.DescribeSubscription
instance GHC.Read.Read Amazonka.Shield.DescribeSubscription.DescribeSubscription
instance GHC.Classes.Eq Amazonka.Shield.DescribeSubscription.DescribeSubscription
instance GHC.Generics.Generic Amazonka.Shield.DescribeSubscription.DescribeSubscriptionResponse
instance GHC.Show.Show Amazonka.Shield.DescribeSubscription.DescribeSubscriptionResponse
instance GHC.Read.Read Amazonka.Shield.DescribeSubscription.DescribeSubscriptionResponse
instance GHC.Classes.Eq Amazonka.Shield.DescribeSubscription.DescribeSubscriptionResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DescribeSubscription.DescribeSubscription
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeSubscription.DescribeSubscriptionResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DescribeSubscription.DescribeSubscription
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeSubscription.DescribeSubscription
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DescribeSubscription.DescribeSubscription
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DescribeSubscription.DescribeSubscription
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DescribeSubscription.DescribeSubscription
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DescribeSubscription.DescribeSubscription
-- | Returns the specification for the specified protection group.
module Amazonka.Shield.DescribeProtectionGroup
-- | See: newDescribeProtectionGroup smart constructor.
data DescribeProtectionGroup
DescribeProtectionGroup' :: Text -> DescribeProtectionGroup
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
[$sel:protectionGroupId:DescribeProtectionGroup'] :: DescribeProtectionGroup -> Text
-- | Create a value of DescribeProtectionGroup with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- DescribeProtectionGroup,
-- describeProtectionGroup_protectionGroupId - The name of the
-- protection group. You use this to identify the protection group in
-- lists and to manage the protection group, for example to update,
-- delete, or describe it.
newDescribeProtectionGroup :: Text -> DescribeProtectionGroup
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
describeProtectionGroup_protectionGroupId :: Lens' DescribeProtectionGroup Text
-- | See: newDescribeProtectionGroupResponse smart
-- constructor.
data DescribeProtectionGroupResponse
DescribeProtectionGroupResponse' :: Int -> ProtectionGroup -> DescribeProtectionGroupResponse
-- | The response's http status code.
[$sel:httpStatus:DescribeProtectionGroupResponse'] :: DescribeProtectionGroupResponse -> Int
-- | A grouping of protected resources that you and Shield Advanced can
-- monitor as a collective. This resource grouping improves the accuracy
-- of detection and reduces false positives.
[$sel:protectionGroup:DescribeProtectionGroupResponse'] :: DescribeProtectionGroupResponse -> ProtectionGroup
-- | Create a value of DescribeProtectionGroupResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DescribeProtectionGroupResponse',
-- describeProtectionGroupResponse_httpStatus - The response's
-- http status code.
--
-- $sel:protectionGroup:DescribeProtectionGroupResponse',
-- describeProtectionGroupResponse_protectionGroup - A grouping of
-- protected resources that you and Shield Advanced can monitor as a
-- collective. This resource grouping improves the accuracy of detection
-- and reduces false positives.
newDescribeProtectionGroupResponse :: Int -> ProtectionGroup -> DescribeProtectionGroupResponse
-- | The response's http status code.
describeProtectionGroupResponse_httpStatus :: Lens' DescribeProtectionGroupResponse Int
-- | A grouping of protected resources that you and Shield Advanced can
-- monitor as a collective. This resource grouping improves the accuracy
-- of detection and reduces false positives.
describeProtectionGroupResponse_protectionGroup :: Lens' DescribeProtectionGroupResponse ProtectionGroup
instance GHC.Generics.Generic Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroup
instance GHC.Show.Show Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroup
instance GHC.Read.Read Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroup
instance GHC.Classes.Eq Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroup
instance GHC.Generics.Generic Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroupResponse
instance GHC.Show.Show Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroupResponse
instance GHC.Read.Read Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroupResponse
instance GHC.Classes.Eq Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroupResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroup
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroupResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroup
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroup
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroup
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroup
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroup
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DescribeProtectionGroup.DescribeProtectionGroup
-- | Lists the details of a Protection object.
module Amazonka.Shield.DescribeProtection
-- | See: newDescribeProtection smart constructor.
data DescribeProtection
DescribeProtection' :: Maybe Text -> Maybe Text -> DescribeProtection
-- | The unique identifier (ID) for the Protection object to describe. You
-- must provide either the ResourceArn of the protected resource
-- or the ProtectionID of the protection, but not both.
[$sel:protectionId:DescribeProtection'] :: DescribeProtection -> Maybe Text
-- | The ARN (Amazon Resource Name) of the protected Amazon Web Services
-- resource. You must provide either the ResourceArn of the
-- protected resource or the ProtectionID of the protection, but
-- not both.
[$sel:resourceArn:DescribeProtection'] :: DescribeProtection -> Maybe Text
-- | Create a value of DescribeProtection with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionId:DescribeProtection',
-- describeProtection_protectionId - The unique identifier (ID)
-- for the Protection object to describe. You must provide either the
-- ResourceArn of the protected resource or the
-- ProtectionID of the protection, but not both.
--
-- DescribeProtection, describeProtection_resourceArn - The
-- ARN (Amazon Resource Name) of the protected Amazon Web Services
-- resource. You must provide either the ResourceArn of the
-- protected resource or the ProtectionID of the protection, but
-- not both.
newDescribeProtection :: DescribeProtection
-- | The unique identifier (ID) for the Protection object to describe. You
-- must provide either the ResourceArn of the protected resource
-- or the ProtectionID of the protection, but not both.
describeProtection_protectionId :: Lens' DescribeProtection (Maybe Text)
-- | The ARN (Amazon Resource Name) of the protected Amazon Web Services
-- resource. You must provide either the ResourceArn of the
-- protected resource or the ProtectionID of the protection, but
-- not both.
describeProtection_resourceArn :: Lens' DescribeProtection (Maybe Text)
-- | See: newDescribeProtectionResponse smart constructor.
data DescribeProtectionResponse
DescribeProtectionResponse' :: Maybe Protection -> Int -> DescribeProtectionResponse
-- | The Protection that you requested.
[$sel:protection:DescribeProtectionResponse'] :: DescribeProtectionResponse -> Maybe Protection
-- | The response's http status code.
[$sel:httpStatus:DescribeProtectionResponse'] :: DescribeProtectionResponse -> Int
-- | Create a value of DescribeProtectionResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protection:DescribeProtectionResponse',
-- describeProtectionResponse_protection - The Protection that you
-- requested.
--
-- $sel:httpStatus:DescribeProtectionResponse',
-- describeProtectionResponse_httpStatus - The response's http
-- status code.
newDescribeProtectionResponse :: Int -> DescribeProtectionResponse
-- | The Protection that you requested.
describeProtectionResponse_protection :: Lens' DescribeProtectionResponse (Maybe Protection)
-- | The response's http status code.
describeProtectionResponse_httpStatus :: Lens' DescribeProtectionResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DescribeProtection.DescribeProtection
instance GHC.Show.Show Amazonka.Shield.DescribeProtection.DescribeProtection
instance GHC.Read.Read Amazonka.Shield.DescribeProtection.DescribeProtection
instance GHC.Classes.Eq Amazonka.Shield.DescribeProtection.DescribeProtection
instance GHC.Generics.Generic Amazonka.Shield.DescribeProtection.DescribeProtectionResponse
instance GHC.Show.Show Amazonka.Shield.DescribeProtection.DescribeProtectionResponse
instance GHC.Read.Read Amazonka.Shield.DescribeProtection.DescribeProtectionResponse
instance GHC.Classes.Eq Amazonka.Shield.DescribeProtection.DescribeProtectionResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DescribeProtection.DescribeProtection
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeProtection.DescribeProtectionResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DescribeProtection.DescribeProtection
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeProtection.DescribeProtection
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DescribeProtection.DescribeProtection
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DescribeProtection.DescribeProtection
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DescribeProtection.DescribeProtection
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DescribeProtection.DescribeProtection
-- | A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you if you have proactive engagement
-- enabled, for escalations to the SRT and to initiate proactive customer
-- support.
module Amazonka.Shield.DescribeEmergencyContactSettings
-- | See: newDescribeEmergencyContactSettings smart
-- constructor.
data DescribeEmergencyContactSettings
DescribeEmergencyContactSettings' :: DescribeEmergencyContactSettings
-- | Create a value of DescribeEmergencyContactSettings with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDescribeEmergencyContactSettings :: DescribeEmergencyContactSettings
-- | See: newDescribeEmergencyContactSettingsResponse smart
-- constructor.
data DescribeEmergencyContactSettingsResponse
DescribeEmergencyContactSettingsResponse' :: Maybe [EmergencyContact] -> Int -> DescribeEmergencyContactSettingsResponse
-- | A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you if you have proactive engagement
-- enabled, for escalations to the SRT and to initiate proactive customer
-- support.
[$sel:emergencyContactList:DescribeEmergencyContactSettingsResponse'] :: DescribeEmergencyContactSettingsResponse -> Maybe [EmergencyContact]
-- | The response's http status code.
[$sel:httpStatus:DescribeEmergencyContactSettingsResponse'] :: DescribeEmergencyContactSettingsResponse -> Int
-- | Create a value of DescribeEmergencyContactSettingsResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
--
-- $sel:emergencyContactList:DescribeEmergencyContactSettingsResponse',
-- describeEmergencyContactSettingsResponse_emergencyContactList -
-- A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you if you have proactive engagement
-- enabled, for escalations to the SRT and to initiate proactive customer
-- support.
--
-- $sel:httpStatus:DescribeEmergencyContactSettingsResponse',
-- describeEmergencyContactSettingsResponse_httpStatus - The
-- response's http status code.
newDescribeEmergencyContactSettingsResponse :: Int -> DescribeEmergencyContactSettingsResponse
-- | A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you if you have proactive engagement
-- enabled, for escalations to the SRT and to initiate proactive customer
-- support.
describeEmergencyContactSettingsResponse_emergencyContactList :: Lens' DescribeEmergencyContactSettingsResponse (Maybe [EmergencyContact])
-- | The response's http status code.
describeEmergencyContactSettingsResponse_httpStatus :: Lens' DescribeEmergencyContactSettingsResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettings
instance GHC.Show.Show Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettings
instance GHC.Read.Read Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettings
instance GHC.Classes.Eq Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettings
instance GHC.Generics.Generic Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettingsResponse
instance GHC.Show.Show Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettingsResponse
instance GHC.Read.Read Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettingsResponse
instance GHC.Classes.Eq Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettingsResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettings
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettingsResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettings
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettings
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettings
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettings
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettings
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DescribeEmergencyContactSettings.DescribeEmergencyContactSettings
-- | Returns the current role and list of Amazon S3 log buckets used by the
-- Shield Response Team (SRT) to access your Amazon Web Services account
-- while assisting with attack mitigation.
module Amazonka.Shield.DescribeDRTAccess
-- | See: newDescribeDRTAccess smart constructor.
data DescribeDRTAccess
DescribeDRTAccess' :: DescribeDRTAccess
-- | Create a value of DescribeDRTAccess with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDescribeDRTAccess :: DescribeDRTAccess
-- | See: newDescribeDRTAccessResponse smart constructor.
data DescribeDRTAccessResponse
DescribeDRTAccessResponse' :: Maybe [Text] -> Maybe Text -> Int -> DescribeDRTAccessResponse
-- | The list of Amazon S3 buckets accessed by the SRT.
[$sel:logBucketList:DescribeDRTAccessResponse'] :: DescribeDRTAccessResponse -> Maybe [Text]
-- | The Amazon Resource Name (ARN) of the role the SRT used to access your
-- Amazon Web Services account.
[$sel:roleArn:DescribeDRTAccessResponse'] :: DescribeDRTAccessResponse -> Maybe Text
-- | The response's http status code.
[$sel:httpStatus:DescribeDRTAccessResponse'] :: DescribeDRTAccessResponse -> Int
-- | Create a value of DescribeDRTAccessResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:logBucketList:DescribeDRTAccessResponse',
-- describeDRTAccessResponse_logBucketList - The list of Amazon S3
-- buckets accessed by the SRT.
--
-- $sel:roleArn:DescribeDRTAccessResponse',
-- describeDRTAccessResponse_roleArn - The Amazon Resource Name
-- (ARN) of the role the SRT used to access your Amazon Web Services
-- account.
--
-- $sel:httpStatus:DescribeDRTAccessResponse',
-- describeDRTAccessResponse_httpStatus - The response's http
-- status code.
newDescribeDRTAccessResponse :: Int -> DescribeDRTAccessResponse
-- | The list of Amazon S3 buckets accessed by the SRT.
describeDRTAccessResponse_logBucketList :: Lens' DescribeDRTAccessResponse (Maybe [Text])
-- | The Amazon Resource Name (ARN) of the role the SRT used to access your
-- Amazon Web Services account.
describeDRTAccessResponse_roleArn :: Lens' DescribeDRTAccessResponse (Maybe Text)
-- | The response's http status code.
describeDRTAccessResponse_httpStatus :: Lens' DescribeDRTAccessResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccess
instance GHC.Show.Show Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccess
instance GHC.Read.Read Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccess
instance GHC.Classes.Eq Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccess
instance GHC.Generics.Generic Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccessResponse
instance GHC.Show.Show Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccessResponse
instance GHC.Read.Read Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccessResponse
instance GHC.Classes.Eq Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccessResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccess
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccessResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccess
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccess
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccess
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccess
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccess
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DescribeDRTAccess.DescribeDRTAccess
-- | Provides information about the number and type of attacks Shield has
-- detected in the last year for all resources that belong to your
-- account, regardless of whether you've defined Shield protections for
-- them. This operation is available to Shield customers as well as to
-- Shield Advanced customers.
--
-- The operation returns data for the time range of midnight UTC, one
-- year ago, to midnight UTC, today. For example, if the current time is
-- 2020-10-26 15:39:32 PDT, equal to 2020-10-26 22:39:32
-- UTC, then the time range for the attack data returned is from
-- 2019-10-26 00:00:00 UTC to 2020-10-26 00:00:00 UTC.
--
-- The time range indicates the period covered by the attack statistics
-- data items.
module Amazonka.Shield.DescribeAttackStatistics
-- | See: newDescribeAttackStatistics smart constructor.
data DescribeAttackStatistics
DescribeAttackStatistics' :: DescribeAttackStatistics
-- | Create a value of DescribeAttackStatistics with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDescribeAttackStatistics :: DescribeAttackStatistics
-- | See: newDescribeAttackStatisticsResponse smart
-- constructor.
data DescribeAttackStatisticsResponse
DescribeAttackStatisticsResponse' :: Int -> TimeRange -> [AttackStatisticsDataItem] -> DescribeAttackStatisticsResponse
-- | The response's http status code.
[$sel:httpStatus:DescribeAttackStatisticsResponse'] :: DescribeAttackStatisticsResponse -> Int
-- | The time range of the attack.
[$sel:timeRange:DescribeAttackStatisticsResponse'] :: DescribeAttackStatisticsResponse -> TimeRange
-- | The data that describes the attacks detected during the time period.
[$sel:dataItems:DescribeAttackStatisticsResponse'] :: DescribeAttackStatisticsResponse -> [AttackStatisticsDataItem]
-- | Create a value of DescribeAttackStatisticsResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DescribeAttackStatisticsResponse',
-- describeAttackStatisticsResponse_httpStatus - The response's
-- http status code.
--
-- $sel:timeRange:DescribeAttackStatisticsResponse',
-- describeAttackStatisticsResponse_timeRange - The time range of
-- the attack.
--
-- $sel:dataItems:DescribeAttackStatisticsResponse',
-- describeAttackStatisticsResponse_dataItems - The data that
-- describes the attacks detected during the time period.
newDescribeAttackStatisticsResponse :: Int -> TimeRange -> DescribeAttackStatisticsResponse
-- | The response's http status code.
describeAttackStatisticsResponse_httpStatus :: Lens' DescribeAttackStatisticsResponse Int
-- | The time range of the attack.
describeAttackStatisticsResponse_timeRange :: Lens' DescribeAttackStatisticsResponse TimeRange
-- | The data that describes the attacks detected during the time period.
describeAttackStatisticsResponse_dataItems :: Lens' DescribeAttackStatisticsResponse [AttackStatisticsDataItem]
instance GHC.Generics.Generic Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatistics
instance GHC.Show.Show Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatistics
instance GHC.Read.Read Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatistics
instance GHC.Classes.Eq Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatistics
instance GHC.Generics.Generic Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatisticsResponse
instance GHC.Show.Show Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatisticsResponse
instance GHC.Read.Read Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatisticsResponse
instance GHC.Classes.Eq Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatisticsResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatistics
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatisticsResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatistics
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatistics
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatistics
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatistics
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatistics
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DescribeAttackStatistics.DescribeAttackStatistics
-- | Describes the details of a DDoS attack.
module Amazonka.Shield.DescribeAttack
-- | See: newDescribeAttack smart constructor.
data DescribeAttack
DescribeAttack' :: Text -> DescribeAttack
-- | The unique identifier (ID) for the attack.
[$sel:attackId:DescribeAttack'] :: DescribeAttack -> Text
-- | Create a value of DescribeAttack with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- DescribeAttack, describeAttack_attackId - The unique
-- identifier (ID) for the attack.
newDescribeAttack :: Text -> DescribeAttack
-- | The unique identifier (ID) for the attack.
describeAttack_attackId :: Lens' DescribeAttack Text
-- | See: newDescribeAttackResponse smart constructor.
data DescribeAttackResponse
DescribeAttackResponse' :: Maybe AttackDetail -> Int -> DescribeAttackResponse
-- | The attack that you requested.
[$sel:attack:DescribeAttackResponse'] :: DescribeAttackResponse -> Maybe AttackDetail
-- | The response's http status code.
[$sel:httpStatus:DescribeAttackResponse'] :: DescribeAttackResponse -> Int
-- | Create a value of DescribeAttackResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attack:DescribeAttackResponse',
-- describeAttackResponse_attack - The attack that you requested.
--
-- $sel:httpStatus:DescribeAttackResponse',
-- describeAttackResponse_httpStatus - The response's http status
-- code.
newDescribeAttackResponse :: Int -> DescribeAttackResponse
-- | The attack that you requested.
describeAttackResponse_attack :: Lens' DescribeAttackResponse (Maybe AttackDetail)
-- | The response's http status code.
describeAttackResponse_httpStatus :: Lens' DescribeAttackResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DescribeAttack.DescribeAttack
instance GHC.Show.Show Amazonka.Shield.DescribeAttack.DescribeAttack
instance GHC.Read.Read Amazonka.Shield.DescribeAttack.DescribeAttack
instance GHC.Classes.Eq Amazonka.Shield.DescribeAttack.DescribeAttack
instance GHC.Generics.Generic Amazonka.Shield.DescribeAttack.DescribeAttackResponse
instance GHC.Show.Show Amazonka.Shield.DescribeAttack.DescribeAttackResponse
instance GHC.Read.Read Amazonka.Shield.DescribeAttack.DescribeAttackResponse
instance GHC.Classes.Eq Amazonka.Shield.DescribeAttack.DescribeAttackResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DescribeAttack.DescribeAttack
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeAttack.DescribeAttackResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DescribeAttack.DescribeAttack
instance Control.DeepSeq.NFData Amazonka.Shield.DescribeAttack.DescribeAttack
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DescribeAttack.DescribeAttack
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DescribeAttack.DescribeAttack
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DescribeAttack.DescribeAttack
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DescribeAttack.DescribeAttack
-- | Removes the specified protection group.
module Amazonka.Shield.DeleteProtectionGroup
-- | See: newDeleteProtectionGroup smart constructor.
data DeleteProtectionGroup
DeleteProtectionGroup' :: Text -> DeleteProtectionGroup
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
[$sel:protectionGroupId:DeleteProtectionGroup'] :: DeleteProtectionGroup -> Text
-- | Create a value of DeleteProtectionGroup with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- DeleteProtectionGroup,
-- deleteProtectionGroup_protectionGroupId - The name of the
-- protection group. You use this to identify the protection group in
-- lists and to manage the protection group, for example to update,
-- delete, or describe it.
newDeleteProtectionGroup :: Text -> DeleteProtectionGroup
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
deleteProtectionGroup_protectionGroupId :: Lens' DeleteProtectionGroup Text
-- | See: newDeleteProtectionGroupResponse smart constructor.
data DeleteProtectionGroupResponse
DeleteProtectionGroupResponse' :: Int -> DeleteProtectionGroupResponse
-- | The response's http status code.
[$sel:httpStatus:DeleteProtectionGroupResponse'] :: DeleteProtectionGroupResponse -> Int
-- | Create a value of DeleteProtectionGroupResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DeleteProtectionGroupResponse',
-- deleteProtectionGroupResponse_httpStatus - The response's http
-- status code.
newDeleteProtectionGroupResponse :: Int -> DeleteProtectionGroupResponse
-- | The response's http status code.
deleteProtectionGroupResponse_httpStatus :: Lens' DeleteProtectionGroupResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroup
instance GHC.Show.Show Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroup
instance GHC.Read.Read Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroup
instance GHC.Classes.Eq Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroup
instance GHC.Generics.Generic Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroupResponse
instance GHC.Show.Show Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroupResponse
instance GHC.Read.Read Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroupResponse
instance GHC.Classes.Eq Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroupResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroup
instance Control.DeepSeq.NFData Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroupResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroup
instance Control.DeepSeq.NFData Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroup
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroup
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroup
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroup
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DeleteProtectionGroup.DeleteProtectionGroup
-- | Deletes an Shield Advanced Protection.
module Amazonka.Shield.DeleteProtection
-- | See: newDeleteProtection smart constructor.
data DeleteProtection
DeleteProtection' :: Text -> DeleteProtection
-- | The unique identifier (ID) for the Protection object to be deleted.
[$sel:protectionId:DeleteProtection'] :: DeleteProtection -> Text
-- | Create a value of DeleteProtection with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionId:DeleteProtection',
-- deleteProtection_protectionId - The unique identifier (ID) for
-- the Protection object to be deleted.
newDeleteProtection :: Text -> DeleteProtection
-- | The unique identifier (ID) for the Protection object to be deleted.
deleteProtection_protectionId :: Lens' DeleteProtection Text
-- | See: newDeleteProtectionResponse smart constructor.
data DeleteProtectionResponse
DeleteProtectionResponse' :: Int -> DeleteProtectionResponse
-- | The response's http status code.
[$sel:httpStatus:DeleteProtectionResponse'] :: DeleteProtectionResponse -> Int
-- | Create a value of DeleteProtectionResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DeleteProtectionResponse',
-- deleteProtectionResponse_httpStatus - The response's http
-- status code.
newDeleteProtectionResponse :: Int -> DeleteProtectionResponse
-- | The response's http status code.
deleteProtectionResponse_httpStatus :: Lens' DeleteProtectionResponse Int
instance GHC.Generics.Generic Amazonka.Shield.DeleteProtection.DeleteProtection
instance GHC.Show.Show Amazonka.Shield.DeleteProtection.DeleteProtection
instance GHC.Read.Read Amazonka.Shield.DeleteProtection.DeleteProtection
instance GHC.Classes.Eq Amazonka.Shield.DeleteProtection.DeleteProtection
instance GHC.Generics.Generic Amazonka.Shield.DeleteProtection.DeleteProtectionResponse
instance GHC.Show.Show Amazonka.Shield.DeleteProtection.DeleteProtectionResponse
instance GHC.Read.Read Amazonka.Shield.DeleteProtection.DeleteProtectionResponse
instance GHC.Classes.Eq Amazonka.Shield.DeleteProtection.DeleteProtectionResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.DeleteProtection.DeleteProtection
instance Control.DeepSeq.NFData Amazonka.Shield.DeleteProtection.DeleteProtectionResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.DeleteProtection.DeleteProtection
instance Control.DeepSeq.NFData Amazonka.Shield.DeleteProtection.DeleteProtection
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.DeleteProtection.DeleteProtection
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.DeleteProtection.DeleteProtection
instance Amazonka.Data.Path.ToPath Amazonka.Shield.DeleteProtection.DeleteProtection
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.DeleteProtection.DeleteProtection
-- | Activates Shield Advanced for an account.
--
-- For accounts that are members of an Organizations organization, Shield
-- Advanced subscriptions are billed against the organization's payer
-- account, regardless of whether the payer account itself is subscribed.
--
-- When you initially create a subscription, your subscription is set to
-- be automatically renewed at the end of the existing subscription
-- period. You can change this by submitting an
-- UpdateSubscription request.
module Amazonka.Shield.CreateSubscription
-- | See: newCreateSubscription smart constructor.
data CreateSubscription
CreateSubscription' :: CreateSubscription
-- | Create a value of CreateSubscription with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newCreateSubscription :: CreateSubscription
-- | See: newCreateSubscriptionResponse smart constructor.
data CreateSubscriptionResponse
CreateSubscriptionResponse' :: Int -> CreateSubscriptionResponse
-- | The response's http status code.
[$sel:httpStatus:CreateSubscriptionResponse'] :: CreateSubscriptionResponse -> Int
-- | Create a value of CreateSubscriptionResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:CreateSubscriptionResponse',
-- createSubscriptionResponse_httpStatus - The response's http
-- status code.
newCreateSubscriptionResponse :: Int -> CreateSubscriptionResponse
-- | The response's http status code.
createSubscriptionResponse_httpStatus :: Lens' CreateSubscriptionResponse Int
instance GHC.Generics.Generic Amazonka.Shield.CreateSubscription.CreateSubscription
instance GHC.Show.Show Amazonka.Shield.CreateSubscription.CreateSubscription
instance GHC.Read.Read Amazonka.Shield.CreateSubscription.CreateSubscription
instance GHC.Classes.Eq Amazonka.Shield.CreateSubscription.CreateSubscription
instance GHC.Generics.Generic Amazonka.Shield.CreateSubscription.CreateSubscriptionResponse
instance GHC.Show.Show Amazonka.Shield.CreateSubscription.CreateSubscriptionResponse
instance GHC.Read.Read Amazonka.Shield.CreateSubscription.CreateSubscriptionResponse
instance GHC.Classes.Eq Amazonka.Shield.CreateSubscription.CreateSubscriptionResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.CreateSubscription.CreateSubscription
instance Control.DeepSeq.NFData Amazonka.Shield.CreateSubscription.CreateSubscriptionResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.CreateSubscription.CreateSubscription
instance Control.DeepSeq.NFData Amazonka.Shield.CreateSubscription.CreateSubscription
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.CreateSubscription.CreateSubscription
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.CreateSubscription.CreateSubscription
instance Amazonka.Data.Path.ToPath Amazonka.Shield.CreateSubscription.CreateSubscription
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.CreateSubscription.CreateSubscription
-- | Creates a grouping of protected resources so they can be handled as a
-- collective. This resource grouping improves the accuracy of detection
-- and reduces false positives.
module Amazonka.Shield.CreateProtectionGroup
-- | See: newCreateProtectionGroup smart constructor.
data CreateProtectionGroup
CreateProtectionGroup' :: Maybe [Text] -> Maybe ProtectedResourceType -> Maybe [Tag] -> Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> CreateProtectionGroup
-- | The Amazon Resource Names (ARNs) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
[$sel:members:CreateProtectionGroup'] :: CreateProtectionGroup -> Maybe [Text]
-- | The resource type to include in the protection group. All protected
-- resources of this type are included in the protection group. Newly
-- protected resources of this type are automatically added to the group.
-- You must set this when you set Pattern to
-- BY_RESOURCE_TYPE and you must not set it for any other
-- Pattern setting.
[$sel:resourceType:CreateProtectionGroup'] :: CreateProtectionGroup -> Maybe ProtectedResourceType
-- | One or more tag key-value pairs for the protection group.
[$sel:tags:CreateProtectionGroup'] :: CreateProtectionGroup -> Maybe [Tag]
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
[$sel:protectionGroupId:CreateProtectionGroup'] :: CreateProtectionGroup -> Text
-- | Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- and origin resources for CloudFront distributions.
--
[$sel:aggregation:CreateProtectionGroup'] :: CreateProtectionGroup -> ProtectionGroupAggregation
-- | The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource Amazon Resource Names (ARNs), or include
-- all resources of a specified resource type.
[$sel:pattern':CreateProtectionGroup'] :: CreateProtectionGroup -> ProtectionGroupPattern
-- | Create a value of CreateProtectionGroup with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- CreateProtectionGroup, createProtectionGroup_members -
-- The Amazon Resource Names (ARNs) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
--
-- CreateProtectionGroup,
-- createProtectionGroup_resourceType - The resource type to
-- include in the protection group. All protected resources of this type
-- are included in the protection group. Newly protected resources of
-- this type are automatically added to the group. You must set this when
-- you set Pattern to BY_RESOURCE_TYPE and you must not
-- set it for any other Pattern setting.
--
-- $sel:tags:CreateProtectionGroup',
-- createProtectionGroup_tags - One or more tag key-value pairs
-- for the protection group.
--
-- CreateProtectionGroup,
-- createProtectionGroup_protectionGroupId - The name of the
-- protection group. You use this to identify the protection group in
-- lists and to manage the protection group, for example to update,
-- delete, or describe it.
--
-- CreateProtectionGroup, createProtectionGroup_aggregation
-- - Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- and origin resources for CloudFront distributions.
--
--
-- CreateProtectionGroup, createProtectionGroup_pattern -
-- The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource Amazon Resource Names (ARNs), or include
-- all resources of a specified resource type.
newCreateProtectionGroup :: Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> CreateProtectionGroup
-- | The Amazon Resource Names (ARNs) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
createProtectionGroup_members :: Lens' CreateProtectionGroup (Maybe [Text])
-- | The resource type to include in the protection group. All protected
-- resources of this type are included in the protection group. Newly
-- protected resources of this type are automatically added to the group.
-- You must set this when you set Pattern to
-- BY_RESOURCE_TYPE and you must not set it for any other
-- Pattern setting.
createProtectionGroup_resourceType :: Lens' CreateProtectionGroup (Maybe ProtectedResourceType)
-- | One or more tag key-value pairs for the protection group.
createProtectionGroup_tags :: Lens' CreateProtectionGroup (Maybe [Tag])
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
createProtectionGroup_protectionGroupId :: Lens' CreateProtectionGroup Text
-- | Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- and origin resources for CloudFront distributions.
--
createProtectionGroup_aggregation :: Lens' CreateProtectionGroup ProtectionGroupAggregation
-- | The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource Amazon Resource Names (ARNs), or include
-- all resources of a specified resource type.
createProtectionGroup_pattern :: Lens' CreateProtectionGroup ProtectionGroupPattern
-- | See: newCreateProtectionGroupResponse smart constructor.
data CreateProtectionGroupResponse
CreateProtectionGroupResponse' :: Int -> CreateProtectionGroupResponse
-- | The response's http status code.
[$sel:httpStatus:CreateProtectionGroupResponse'] :: CreateProtectionGroupResponse -> Int
-- | Create a value of CreateProtectionGroupResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:CreateProtectionGroupResponse',
-- createProtectionGroupResponse_httpStatus - The response's http
-- status code.
newCreateProtectionGroupResponse :: Int -> CreateProtectionGroupResponse
-- | The response's http status code.
createProtectionGroupResponse_httpStatus :: Lens' CreateProtectionGroupResponse Int
instance GHC.Generics.Generic Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroup
instance GHC.Show.Show Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroup
instance GHC.Read.Read Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroup
instance GHC.Classes.Eq Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroup
instance GHC.Generics.Generic Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroupResponse
instance GHC.Show.Show Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroupResponse
instance GHC.Read.Read Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroupResponse
instance GHC.Classes.Eq Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroupResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroup
instance Control.DeepSeq.NFData Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroupResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroup
instance Control.DeepSeq.NFData Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroup
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroup
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroup
instance Amazonka.Data.Path.ToPath Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroup
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.CreateProtectionGroup.CreateProtectionGroup
-- | Enables Shield Advanced for a specific Amazon Web Services resource.
-- The resource can be an Amazon CloudFront distribution, Amazon Route 53
-- hosted zone, Global Accelerator standard accelerator, Elastic IP
-- Address, Application Load Balancer, or a Classic Load Balancer. You
-- can protect Amazon EC2 instances and Network Load Balancers by
-- association with protected Amazon EC2 Elastic IP addresses.
--
-- You can add protection to only a single resource with each
-- CreateProtection request. You can add protection to multiple
-- resources at once through the Shield Advanced console at
-- https://console.aws.amazon.com/wafv2/shieldv2#/. For more
-- information see Getting Started with Shield Advanced and
-- Adding Shield Advanced protection to Amazon Web Services
-- resources.
module Amazonka.Shield.CreateProtection
-- | See: newCreateProtection smart constructor.
data CreateProtection
CreateProtection' :: Maybe [Tag] -> Text -> Text -> CreateProtection
-- | One or more tag key-value pairs for the Protection object that is
-- created.
[$sel:tags:CreateProtection'] :: CreateProtection -> Maybe [Tag]
-- | Friendly name for the Protection you are creating.
[$sel:name:CreateProtection'] :: CreateProtection -> Text
-- | The ARN (Amazon Resource Name) of the resource to be protected.
--
-- The ARN should be in one of the following formats:
--
--
-- - For an Application Load Balancer:
-- arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
--
-- - For an Elastic Load Balancer (Classic Load Balancer):
-- arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name
--
-- - For an Amazon CloudFront distribution:
-- arn:aws:cloudfront::account-id:distribution/distribution-id
--
-- - For an Global Accelerator standard accelerator:
-- arn:aws:globalaccelerator::account-id:accelerator/accelerator-id
--
-- - For Amazon Route 53:
-- arn:aws:route53:::hostedzone/hosted-zone-id
--
-- - For an Elastic IP address:
-- arn:aws:ec2:region:account-id:eip-allocation/allocation-id
--
--
[$sel:resourceArn:CreateProtection'] :: CreateProtection -> Text
-- | Create a value of CreateProtection with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:tags:CreateProtection', createProtection_tags - One
-- or more tag key-value pairs for the Protection object that is created.
--
-- CreateProtection, createProtection_name - Friendly name
-- for the Protection you are creating.
--
-- CreateProtection, createProtection_resourceArn - The ARN
-- (Amazon Resource Name) of the resource to be protected.
--
-- The ARN should be in one of the following formats:
--
--
-- - For an Application Load Balancer:
-- arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
--
-- - For an Elastic Load Balancer (Classic Load Balancer):
-- arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name
--
-- - For an Amazon CloudFront distribution:
-- arn:aws:cloudfront::account-id:distribution/distribution-id
--
-- - For an Global Accelerator standard accelerator:
-- arn:aws:globalaccelerator::account-id:accelerator/accelerator-id
--
-- - For Amazon Route 53:
-- arn:aws:route53:::hostedzone/hosted-zone-id
--
-- - For an Elastic IP address:
-- arn:aws:ec2:region:account-id:eip-allocation/allocation-id
--
--
newCreateProtection :: Text -> Text -> CreateProtection
-- | One or more tag key-value pairs for the Protection object that is
-- created.
createProtection_tags :: Lens' CreateProtection (Maybe [Tag])
-- | Friendly name for the Protection you are creating.
createProtection_name :: Lens' CreateProtection Text
-- | The ARN (Amazon Resource Name) of the resource to be protected.
--
-- The ARN should be in one of the following formats:
--
--
-- - For an Application Load Balancer:
-- arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
--
-- - For an Elastic Load Balancer (Classic Load Balancer):
-- arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name
--
-- - For an Amazon CloudFront distribution:
-- arn:aws:cloudfront::account-id:distribution/distribution-id
--
-- - For an Global Accelerator standard accelerator:
-- arn:aws:globalaccelerator::account-id:accelerator/accelerator-id
--
-- - For Amazon Route 53:
-- arn:aws:route53:::hostedzone/hosted-zone-id
--
-- - For an Elastic IP address:
-- arn:aws:ec2:region:account-id:eip-allocation/allocation-id
--
--
createProtection_resourceArn :: Lens' CreateProtection Text
-- | See: newCreateProtectionResponse smart constructor.
data CreateProtectionResponse
CreateProtectionResponse' :: Maybe Text -> Int -> CreateProtectionResponse
-- | The unique identifier (ID) for the Protection object that is created.
[$sel:protectionId:CreateProtectionResponse'] :: CreateProtectionResponse -> Maybe Text
-- | The response's http status code.
[$sel:httpStatus:CreateProtectionResponse'] :: CreateProtectionResponse -> Int
-- | Create a value of CreateProtectionResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionId:CreateProtectionResponse',
-- createProtectionResponse_protectionId - The unique identifier
-- (ID) for the Protection object that is created.
--
-- $sel:httpStatus:CreateProtectionResponse',
-- createProtectionResponse_httpStatus - The response's http
-- status code.
newCreateProtectionResponse :: Int -> CreateProtectionResponse
-- | The unique identifier (ID) for the Protection object that is created.
createProtectionResponse_protectionId :: Lens' CreateProtectionResponse (Maybe Text)
-- | The response's http status code.
createProtectionResponse_httpStatus :: Lens' CreateProtectionResponse Int
instance GHC.Generics.Generic Amazonka.Shield.CreateProtection.CreateProtection
instance GHC.Show.Show Amazonka.Shield.CreateProtection.CreateProtection
instance GHC.Read.Read Amazonka.Shield.CreateProtection.CreateProtection
instance GHC.Classes.Eq Amazonka.Shield.CreateProtection.CreateProtection
instance GHC.Generics.Generic Amazonka.Shield.CreateProtection.CreateProtectionResponse
instance GHC.Show.Show Amazonka.Shield.CreateProtection.CreateProtectionResponse
instance GHC.Read.Read Amazonka.Shield.CreateProtection.CreateProtectionResponse
instance GHC.Classes.Eq Amazonka.Shield.CreateProtection.CreateProtectionResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.CreateProtection.CreateProtection
instance Control.DeepSeq.NFData Amazonka.Shield.CreateProtection.CreateProtectionResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.CreateProtection.CreateProtection
instance Control.DeepSeq.NFData Amazonka.Shield.CreateProtection.CreateProtection
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.CreateProtection.CreateProtection
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.CreateProtection.CreateProtection
instance Amazonka.Data.Path.ToPath Amazonka.Shield.CreateProtection.CreateProtection
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.CreateProtection.CreateProtection
-- | Initializes proactive engagement and sets the list of contacts for the
-- Shield Response Team (SRT) to use. You must provide at least one phone
-- number in the emergency contact list.
--
-- After you have initialized proactive engagement using this call, to
-- disable or enable proactive engagement, use the calls
-- DisableProactiveEngagement and
-- EnableProactiveEngagement.
--
-- This call defines the list of email addresses and phone numbers that
-- the SRT can use to contact you for escalations to the SRT and to
-- initiate proactive customer support.
--
-- The contacts that you provide in the request replace any contacts that
-- were already defined. If you already have contacts defined and want to
-- use them, retrieve the list using
-- DescribeEmergencyContactSettings and then provide it to this
-- call.
module Amazonka.Shield.AssociateProactiveEngagementDetails
-- | See: newAssociateProactiveEngagementDetails smart
-- constructor.
data AssociateProactiveEngagementDetails
AssociateProactiveEngagementDetails' :: [EmergencyContact] -> AssociateProactiveEngagementDetails
-- | A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you for escalations to the SRT and to
-- initiate proactive customer support.
--
-- To enable proactive engagement, the contact list must include at least
-- one phone number.
--
-- The contacts that you provide here replace any contacts that were
-- already defined. If you already have contacts defined and want to use
-- them, retrieve the list using
-- DescribeEmergencyContactSettings and then provide it here.
[$sel:emergencyContactList:AssociateProactiveEngagementDetails'] :: AssociateProactiveEngagementDetails -> [EmergencyContact]
-- | Create a value of AssociateProactiveEngagementDetails with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:emergencyContactList:AssociateProactiveEngagementDetails',
-- associateProactiveEngagementDetails_emergencyContactList - A
-- list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you for escalations to the SRT and to
-- initiate proactive customer support.
--
-- To enable proactive engagement, the contact list must include at least
-- one phone number.
--
-- The contacts that you provide here replace any contacts that were
-- already defined. If you already have contacts defined and want to use
-- them, retrieve the list using
-- DescribeEmergencyContactSettings and then provide it here.
newAssociateProactiveEngagementDetails :: AssociateProactiveEngagementDetails
-- | A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you for escalations to the SRT and to
-- initiate proactive customer support.
--
-- To enable proactive engagement, the contact list must include at least
-- one phone number.
--
-- The contacts that you provide here replace any contacts that were
-- already defined. If you already have contacts defined and want to use
-- them, retrieve the list using
-- DescribeEmergencyContactSettings and then provide it here.
associateProactiveEngagementDetails_emergencyContactList :: Lens' AssociateProactiveEngagementDetails [EmergencyContact]
-- | See: newAssociateProactiveEngagementDetailsResponse
-- smart constructor.
data AssociateProactiveEngagementDetailsResponse
AssociateProactiveEngagementDetailsResponse' :: Int -> AssociateProactiveEngagementDetailsResponse
-- | The response's http status code.
[$sel:httpStatus:AssociateProactiveEngagementDetailsResponse'] :: AssociateProactiveEngagementDetailsResponse -> Int
-- | Create a value of AssociateProactiveEngagementDetailsResponse
-- with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:AssociateProactiveEngagementDetailsResponse',
-- associateProactiveEngagementDetailsResponse_httpStatus - The
-- response's http status code.
newAssociateProactiveEngagementDetailsResponse :: Int -> AssociateProactiveEngagementDetailsResponse
-- | The response's http status code.
associateProactiveEngagementDetailsResponse_httpStatus :: Lens' AssociateProactiveEngagementDetailsResponse Int
instance GHC.Generics.Generic Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetails
instance GHC.Show.Show Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetails
instance GHC.Read.Read Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetails
instance GHC.Classes.Eq Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetails
instance GHC.Generics.Generic Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetailsResponse
instance GHC.Show.Show Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetailsResponse
instance GHC.Read.Read Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetailsResponse
instance GHC.Classes.Eq Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetailsResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetails
instance Control.DeepSeq.NFData Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetailsResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetails
instance Control.DeepSeq.NFData Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetails
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetails
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetails
instance Amazonka.Data.Path.ToPath Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetails
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.AssociateProactiveEngagementDetails.AssociateProactiveEngagementDetails
-- | Adds health-based detection to the Shield Advanced protection for a
-- resource. Shield Advanced health-based detection uses the health of
-- your Amazon Web Services resource to improve responsiveness and
-- accuracy in attack detection and response.
--
-- You define the health check in Route 53 and then associate it with
-- your Shield Advanced protection. For more information, see Shield
-- Advanced Health-Based Detection in the WAF Developer Guide.
module Amazonka.Shield.AssociateHealthCheck
-- | See: newAssociateHealthCheck smart constructor.
data AssociateHealthCheck
AssociateHealthCheck' :: Text -> Text -> AssociateHealthCheck
-- | The unique identifier (ID) for the Protection object to add the health
-- check association to.
[$sel:protectionId:AssociateHealthCheck'] :: AssociateHealthCheck -> Text
-- | The Amazon Resource Name (ARN) of the health check to associate with
-- the protection.
[$sel:healthCheckArn:AssociateHealthCheck'] :: AssociateHealthCheck -> Text
-- | Create a value of AssociateHealthCheck with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionId:AssociateHealthCheck',
-- associateHealthCheck_protectionId - The unique identifier (ID)
-- for the Protection object to add the health check association to.
--
-- $sel:healthCheckArn:AssociateHealthCheck',
-- associateHealthCheck_healthCheckArn - The Amazon Resource Name
-- (ARN) of the health check to associate with the protection.
newAssociateHealthCheck :: Text -> Text -> AssociateHealthCheck
-- | The unique identifier (ID) for the Protection object to add the health
-- check association to.
associateHealthCheck_protectionId :: Lens' AssociateHealthCheck Text
-- | The Amazon Resource Name (ARN) of the health check to associate with
-- the protection.
associateHealthCheck_healthCheckArn :: Lens' AssociateHealthCheck Text
-- | See: newAssociateHealthCheckResponse smart constructor.
data AssociateHealthCheckResponse
AssociateHealthCheckResponse' :: Int -> AssociateHealthCheckResponse
-- | The response's http status code.
[$sel:httpStatus:AssociateHealthCheckResponse'] :: AssociateHealthCheckResponse -> Int
-- | Create a value of AssociateHealthCheckResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:AssociateHealthCheckResponse',
-- associateHealthCheckResponse_httpStatus - The response's http
-- status code.
newAssociateHealthCheckResponse :: Int -> AssociateHealthCheckResponse
-- | The response's http status code.
associateHealthCheckResponse_httpStatus :: Lens' AssociateHealthCheckResponse Int
instance GHC.Generics.Generic Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheck
instance GHC.Show.Show Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheck
instance GHC.Read.Read Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheck
instance GHC.Classes.Eq Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheck
instance GHC.Generics.Generic Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheckResponse
instance GHC.Show.Show Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheckResponse
instance GHC.Read.Read Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheckResponse
instance GHC.Classes.Eq Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheckResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheck
instance Control.DeepSeq.NFData Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheckResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheck
instance Control.DeepSeq.NFData Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheck
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheck
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheck
instance Amazonka.Data.Path.ToPath Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheck
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.AssociateHealthCheck.AssociateHealthCheck
-- | Authorizes the Shield Response Team (SRT) using the specified role, to
-- access your Amazon Web Services account to assist with DDoS attack
-- mitigation during potential attacks. This enables the SRT to inspect
-- your WAF configuration and create or update WAF rules and web ACLs.
--
-- You can associate only one RoleArn with your subscription. If
-- you submit an AssociateDRTRole request for an account that
-- already has an associated role, the new RoleArn will replace
-- the existing RoleArn.
--
-- Prior to making the AssociateDRTRole request, you must attach
-- the AWSShieldDRTAccessPolicy managed policy to the role that
-- you'll specify in the request. You can access this policy in the IAM
-- console at AWSShieldDRTAccessPolicy. For more information see
-- Adding and removing IAM identity permissions. The role must
-- also trust the service principal drt.shield.amazonaws.com.
-- For more information, see IAM JSON policy elements: Principal.
--
-- The SRT will have access only to your WAF and Shield resources. By
-- submitting this request, you authorize the SRT to inspect your WAF and
-- Shield configuration and create and update WAF rules and web ACLs on
-- your behalf. The SRT takes these actions only if explicitly authorized
-- by you.
--
-- You must have the iam:PassRole permission to make an
-- AssociateDRTRole request. For more information, see
-- Granting a user permissions to pass a role to an Amazon Web
-- Services service.
--
-- To use the services of the SRT and make an AssociateDRTRole
-- request, you must be subscribed to the Business Support plan or
-- the Enterprise Support plan.
module Amazonka.Shield.AssociateDRTRole
-- | See: newAssociateDRTRole smart constructor.
data AssociateDRTRole
AssociateDRTRole' :: Text -> AssociateDRTRole
-- | The Amazon Resource Name (ARN) of the role the SRT will use to access
-- your Amazon Web Services account.
--
-- Prior to making the AssociateDRTRole request, you must attach
-- the AWSShieldDRTAccessPolicy managed policy to this role. For
-- more information see Attaching and Detaching IAM Policies.
[$sel:roleArn:AssociateDRTRole'] :: AssociateDRTRole -> Text
-- | Create a value of AssociateDRTRole with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:roleArn:AssociateDRTRole', associateDRTRole_roleArn
-- - The Amazon Resource Name (ARN) of the role the SRT will use to
-- access your Amazon Web Services account.
--
-- Prior to making the AssociateDRTRole request, you must attach
-- the AWSShieldDRTAccessPolicy managed policy to this role. For
-- more information see Attaching and Detaching IAM Policies.
newAssociateDRTRole :: Text -> AssociateDRTRole
-- | The Amazon Resource Name (ARN) of the role the SRT will use to access
-- your Amazon Web Services account.
--
-- Prior to making the AssociateDRTRole request, you must attach
-- the AWSShieldDRTAccessPolicy managed policy to this role. For
-- more information see Attaching and Detaching IAM Policies.
associateDRTRole_roleArn :: Lens' AssociateDRTRole Text
-- | See: newAssociateDRTRoleResponse smart constructor.
data AssociateDRTRoleResponse
AssociateDRTRoleResponse' :: Int -> AssociateDRTRoleResponse
-- | The response's http status code.
[$sel:httpStatus:AssociateDRTRoleResponse'] :: AssociateDRTRoleResponse -> Int
-- | Create a value of AssociateDRTRoleResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:AssociateDRTRoleResponse',
-- associateDRTRoleResponse_httpStatus - The response's http
-- status code.
newAssociateDRTRoleResponse :: Int -> AssociateDRTRoleResponse
-- | The response's http status code.
associateDRTRoleResponse_httpStatus :: Lens' AssociateDRTRoleResponse Int
instance GHC.Generics.Generic Amazonka.Shield.AssociateDRTRole.AssociateDRTRole
instance GHC.Show.Show Amazonka.Shield.AssociateDRTRole.AssociateDRTRole
instance GHC.Read.Read Amazonka.Shield.AssociateDRTRole.AssociateDRTRole
instance GHC.Classes.Eq Amazonka.Shield.AssociateDRTRole.AssociateDRTRole
instance GHC.Generics.Generic Amazonka.Shield.AssociateDRTRole.AssociateDRTRoleResponse
instance GHC.Show.Show Amazonka.Shield.AssociateDRTRole.AssociateDRTRoleResponse
instance GHC.Read.Read Amazonka.Shield.AssociateDRTRole.AssociateDRTRoleResponse
instance GHC.Classes.Eq Amazonka.Shield.AssociateDRTRole.AssociateDRTRoleResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.AssociateDRTRole.AssociateDRTRole
instance Control.DeepSeq.NFData Amazonka.Shield.AssociateDRTRole.AssociateDRTRoleResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.AssociateDRTRole.AssociateDRTRole
instance Control.DeepSeq.NFData Amazonka.Shield.AssociateDRTRole.AssociateDRTRole
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.AssociateDRTRole.AssociateDRTRole
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.AssociateDRTRole.AssociateDRTRole
instance Amazonka.Data.Path.ToPath Amazonka.Shield.AssociateDRTRole.AssociateDRTRole
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.AssociateDRTRole.AssociateDRTRole
-- | Authorizes the Shield Response Team (SRT) to access the specified
-- Amazon S3 bucket containing log data such as Application Load Balancer
-- access logs, CloudFront logs, or logs from third party sources. You
-- can associate up to 10 Amazon S3 buckets with your subscription.
--
-- To use the services of the SRT and make an
-- AssociateDRTLogBucket request, you must be subscribed to the
-- Business Support plan or the Enterprise Support plan.
module Amazonka.Shield.AssociateDRTLogBucket
-- | See: newAssociateDRTLogBucket smart constructor.
data AssociateDRTLogBucket
AssociateDRTLogBucket' :: Text -> AssociateDRTLogBucket
-- | The Amazon S3 bucket that contains the logs that you want to share.
[$sel:logBucket:AssociateDRTLogBucket'] :: AssociateDRTLogBucket -> Text
-- | Create a value of AssociateDRTLogBucket with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:logBucket:AssociateDRTLogBucket',
-- associateDRTLogBucket_logBucket - The Amazon S3 bucket that
-- contains the logs that you want to share.
newAssociateDRTLogBucket :: Text -> AssociateDRTLogBucket
-- | The Amazon S3 bucket that contains the logs that you want to share.
associateDRTLogBucket_logBucket :: Lens' AssociateDRTLogBucket Text
-- | See: newAssociateDRTLogBucketResponse smart constructor.
data AssociateDRTLogBucketResponse
AssociateDRTLogBucketResponse' :: Int -> AssociateDRTLogBucketResponse
-- | The response's http status code.
[$sel:httpStatus:AssociateDRTLogBucketResponse'] :: AssociateDRTLogBucketResponse -> Int
-- | Create a value of AssociateDRTLogBucketResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:AssociateDRTLogBucketResponse',
-- associateDRTLogBucketResponse_httpStatus - The response's http
-- status code.
newAssociateDRTLogBucketResponse :: Int -> AssociateDRTLogBucketResponse
-- | The response's http status code.
associateDRTLogBucketResponse_httpStatus :: Lens' AssociateDRTLogBucketResponse Int
instance GHC.Generics.Generic Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucket
instance GHC.Show.Show Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucket
instance GHC.Read.Read Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucket
instance GHC.Classes.Eq Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucket
instance GHC.Generics.Generic Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucketResponse
instance GHC.Show.Show Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucketResponse
instance GHC.Read.Read Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucketResponse
instance GHC.Classes.Eq Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucketResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucket
instance Control.DeepSeq.NFData Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucketResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucket
instance Control.DeepSeq.NFData Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucket
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucket
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucket
instance Amazonka.Data.Path.ToPath Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucket
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.AssociateDRTLogBucket.AssociateDRTLogBucket
-- | Removes tags from a resource in Shield.
module Amazonka.Shield.UntagResource
-- | See: newUntagResource smart constructor.
data UntagResource
UntagResource' :: Text -> [Text] -> UntagResource
-- | The Amazon Resource Name (ARN) of the resource that you want to remove
-- tags from.
[$sel:resourceARN:UntagResource'] :: UntagResource -> Text
-- | The tag key for each tag that you want to remove from the resource.
[$sel:tagKeys:UntagResource'] :: UntagResource -> [Text]
-- | Create a value of UntagResource with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:resourceARN:UntagResource',
-- untagResource_resourceARN - The Amazon Resource Name (ARN) of
-- the resource that you want to remove tags from.
--
-- $sel:tagKeys:UntagResource', untagResource_tagKeys - The
-- tag key for each tag that you want to remove from the resource.
newUntagResource :: Text -> UntagResource
-- | The Amazon Resource Name (ARN) of the resource that you want to remove
-- tags from.
untagResource_resourceARN :: Lens' UntagResource Text
-- | The tag key for each tag that you want to remove from the resource.
untagResource_tagKeys :: Lens' UntagResource [Text]
-- | See: newUntagResourceResponse smart constructor.
data UntagResourceResponse
UntagResourceResponse' :: Int -> UntagResourceResponse
-- | The response's http status code.
[$sel:httpStatus:UntagResourceResponse'] :: UntagResourceResponse -> Int
-- | Create a value of UntagResourceResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:UntagResourceResponse',
-- untagResourceResponse_httpStatus - The response's http status
-- code.
newUntagResourceResponse :: Int -> UntagResourceResponse
-- | The response's http status code.
untagResourceResponse_httpStatus :: Lens' UntagResourceResponse Int
instance GHC.Generics.Generic Amazonka.Shield.UntagResource.UntagResource
instance GHC.Show.Show Amazonka.Shield.UntagResource.UntagResource
instance GHC.Read.Read Amazonka.Shield.UntagResource.UntagResource
instance GHC.Classes.Eq Amazonka.Shield.UntagResource.UntagResource
instance GHC.Generics.Generic Amazonka.Shield.UntagResource.UntagResourceResponse
instance GHC.Show.Show Amazonka.Shield.UntagResource.UntagResourceResponse
instance GHC.Read.Read Amazonka.Shield.UntagResource.UntagResourceResponse
instance GHC.Classes.Eq Amazonka.Shield.UntagResource.UntagResourceResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.UntagResource.UntagResource
instance Control.DeepSeq.NFData Amazonka.Shield.UntagResource.UntagResourceResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.UntagResource.UntagResource
instance Control.DeepSeq.NFData Amazonka.Shield.UntagResource.UntagResource
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.UntagResource.UntagResource
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.UntagResource.UntagResource
instance Amazonka.Data.Path.ToPath Amazonka.Shield.UntagResource.UntagResource
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.UntagResource.UntagResource
-- | Updates an existing Shield Advanced automatic application layer DDoS
-- mitigation configuration for the specified resource.
module Amazonka.Shield.UpdateApplicationLayerAutomaticResponse
-- | See: newUpdateApplicationLayerAutomaticResponse smart
-- constructor.
data UpdateApplicationLayerAutomaticResponse
UpdateApplicationLayerAutomaticResponse' :: Text -> ResponseAction -> UpdateApplicationLayerAutomaticResponse
-- | The ARN (Amazon Resource Name) of the resource.
[$sel:resourceArn:UpdateApplicationLayerAutomaticResponse'] :: UpdateApplicationLayerAutomaticResponse -> Text
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
[$sel:action:UpdateApplicationLayerAutomaticResponse'] :: UpdateApplicationLayerAutomaticResponse -> ResponseAction
-- | Create a value of UpdateApplicationLayerAutomaticResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- UpdateApplicationLayerAutomaticResponse,
-- updateApplicationLayerAutomaticResponse_resourceArn - The ARN
-- (Amazon Resource Name) of the resource.
--
-- UpdateApplicationLayerAutomaticResponse,
-- updateApplicationLayerAutomaticResponse_action - Specifies the
-- action setting that Shield Advanced should use in the WAF rules that
-- it creates on behalf of the protected resource in response to DDoS
-- attacks. You specify this as part of the configuration for the
-- automatic application layer DDoS mitigation feature, when you enable
-- or update automatic mitigation. Shield Advanced creates the WAF rules
-- in a Shield Advanced-managed rule group, inside the web ACL that you
-- have associated with the resource.
newUpdateApplicationLayerAutomaticResponse :: Text -> ResponseAction -> UpdateApplicationLayerAutomaticResponse
-- | The ARN (Amazon Resource Name) of the resource.
updateApplicationLayerAutomaticResponse_resourceArn :: Lens' UpdateApplicationLayerAutomaticResponse Text
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
updateApplicationLayerAutomaticResponse_action :: Lens' UpdateApplicationLayerAutomaticResponse ResponseAction
-- | See: newUpdateApplicationLayerAutomaticResponseResponse
-- smart constructor.
data UpdateApplicationLayerAutomaticResponseResponse
UpdateApplicationLayerAutomaticResponseResponse' :: Int -> UpdateApplicationLayerAutomaticResponseResponse
-- | The response's http status code.
[$sel:httpStatus:UpdateApplicationLayerAutomaticResponseResponse'] :: UpdateApplicationLayerAutomaticResponseResponse -> Int
-- | Create a value of
-- UpdateApplicationLayerAutomaticResponseResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
--
-- $sel:httpStatus:UpdateApplicationLayerAutomaticResponseResponse',
-- updateApplicationLayerAutomaticResponseResponse_httpStatus -
-- The response's http status code.
newUpdateApplicationLayerAutomaticResponseResponse :: Int -> UpdateApplicationLayerAutomaticResponseResponse
-- | The response's http status code.
updateApplicationLayerAutomaticResponseResponse_httpStatus :: Lens' UpdateApplicationLayerAutomaticResponseResponse Int
instance GHC.Generics.Generic Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponse
instance GHC.Show.Show Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponse
instance GHC.Read.Read Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponse
instance GHC.Classes.Eq Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponse
instance GHC.Generics.Generic Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponseResponse
instance GHC.Show.Show Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponseResponse
instance GHC.Read.Read Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponseResponse
instance GHC.Classes.Eq Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponseResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponse
instance Control.DeepSeq.NFData Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponseResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponse
instance Control.DeepSeq.NFData Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponse
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponse
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponse
instance Amazonka.Data.Path.ToPath Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponse
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.UpdateApplicationLayerAutomaticResponse.UpdateApplicationLayerAutomaticResponse
-- | Updates the details of the list of email addresses and phone numbers
-- that the Shield Response Team (SRT) can use to contact you if you have
-- proactive engagement enabled, for escalations to the SRT and to
-- initiate proactive customer support.
module Amazonka.Shield.UpdateEmergencyContactSettings
-- | See: newUpdateEmergencyContactSettings smart
-- constructor.
data UpdateEmergencyContactSettings
UpdateEmergencyContactSettings' :: Maybe [EmergencyContact] -> UpdateEmergencyContactSettings
-- | A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you if you have proactive engagement
-- enabled, for escalations to the SRT and to initiate proactive customer
-- support.
--
-- If you have proactive engagement enabled, the contact list must
-- include at least one phone number.
[$sel:emergencyContactList:UpdateEmergencyContactSettings'] :: UpdateEmergencyContactSettings -> Maybe [EmergencyContact]
-- | Create a value of UpdateEmergencyContactSettings with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:emergencyContactList:UpdateEmergencyContactSettings',
-- updateEmergencyContactSettings_emergencyContactList - A list of
-- email addresses and phone numbers that the Shield Response Team (SRT)
-- can use to contact you if you have proactive engagement enabled, for
-- escalations to the SRT and to initiate proactive customer support.
--
-- If you have proactive engagement enabled, the contact list must
-- include at least one phone number.
newUpdateEmergencyContactSettings :: UpdateEmergencyContactSettings
-- | A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you if you have proactive engagement
-- enabled, for escalations to the SRT and to initiate proactive customer
-- support.
--
-- If you have proactive engagement enabled, the contact list must
-- include at least one phone number.
updateEmergencyContactSettings_emergencyContactList :: Lens' UpdateEmergencyContactSettings (Maybe [EmergencyContact])
-- | See: newUpdateEmergencyContactSettingsResponse smart
-- constructor.
data UpdateEmergencyContactSettingsResponse
UpdateEmergencyContactSettingsResponse' :: Int -> UpdateEmergencyContactSettingsResponse
-- | The response's http status code.
[$sel:httpStatus:UpdateEmergencyContactSettingsResponse'] :: UpdateEmergencyContactSettingsResponse -> Int
-- | Create a value of UpdateEmergencyContactSettingsResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:UpdateEmergencyContactSettingsResponse',
-- updateEmergencyContactSettingsResponse_httpStatus - The
-- response's http status code.
newUpdateEmergencyContactSettingsResponse :: Int -> UpdateEmergencyContactSettingsResponse
-- | The response's http status code.
updateEmergencyContactSettingsResponse_httpStatus :: Lens' UpdateEmergencyContactSettingsResponse Int
instance GHC.Generics.Generic Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettings
instance GHC.Show.Show Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettings
instance GHC.Read.Read Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettings
instance GHC.Classes.Eq Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettings
instance GHC.Generics.Generic Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettingsResponse
instance GHC.Show.Show Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettingsResponse
instance GHC.Read.Read Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettingsResponse
instance GHC.Classes.Eq Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettingsResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettings
instance Control.DeepSeq.NFData Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettingsResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettings
instance Control.DeepSeq.NFData Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettings
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettings
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettings
instance Amazonka.Data.Path.ToPath Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettings
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.UpdateEmergencyContactSettings.UpdateEmergencyContactSettings
-- | Updates an existing protection group. A protection group is a grouping
-- of protected resources so they can be handled as a collective. This
-- resource grouping improves the accuracy of detection and reduces false
-- positives.
module Amazonka.Shield.UpdateProtectionGroup
-- | See: newUpdateProtectionGroup smart constructor.
data UpdateProtectionGroup
UpdateProtectionGroup' :: Maybe [Text] -> Maybe ProtectedResourceType -> Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> UpdateProtectionGroup
-- | The Amazon Resource Names (ARNs) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
[$sel:members:UpdateProtectionGroup'] :: UpdateProtectionGroup -> Maybe [Text]
-- | The resource type to include in the protection group. All protected
-- resources of this type are included in the protection group. You must
-- set this when you set Pattern to BY_RESOURCE_TYPE
-- and you must not set it for any other Pattern setting.
[$sel:resourceType:UpdateProtectionGroup'] :: UpdateProtectionGroup -> Maybe ProtectedResourceType
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
[$sel:protectionGroupId:UpdateProtectionGroup'] :: UpdateProtectionGroup -> Text
-- | Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
[$sel:aggregation:UpdateProtectionGroup'] :: UpdateProtectionGroup -> ProtectionGroupAggregation
-- | The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource Amazon Resource Names (ARNs), or include
-- all resources of a specified resource type.
[$sel:pattern':UpdateProtectionGroup'] :: UpdateProtectionGroup -> ProtectionGroupPattern
-- | Create a value of UpdateProtectionGroup with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- UpdateProtectionGroup, updateProtectionGroup_members -
-- The Amazon Resource Names (ARNs) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
--
-- UpdateProtectionGroup,
-- updateProtectionGroup_resourceType - The resource type to
-- include in the protection group. All protected resources of this type
-- are included in the protection group. You must set this when you set
-- Pattern to BY_RESOURCE_TYPE and you must not set it
-- for any other Pattern setting.
--
-- UpdateProtectionGroup,
-- updateProtectionGroup_protectionGroupId - The name of the
-- protection group. You use this to identify the protection group in
-- lists and to manage the protection group, for example to update,
-- delete, or describe it.
--
-- UpdateProtectionGroup, updateProtectionGroup_aggregation
-- - Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
--
-- UpdateProtectionGroup, updateProtectionGroup_pattern -
-- The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource Amazon Resource Names (ARNs), or include
-- all resources of a specified resource type.
newUpdateProtectionGroup :: Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> UpdateProtectionGroup
-- | The Amazon Resource Names (ARNs) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
updateProtectionGroup_members :: Lens' UpdateProtectionGroup (Maybe [Text])
-- | The resource type to include in the protection group. All protected
-- resources of this type are included in the protection group. You must
-- set this when you set Pattern to BY_RESOURCE_TYPE
-- and you must not set it for any other Pattern setting.
updateProtectionGroup_resourceType :: Lens' UpdateProtectionGroup (Maybe ProtectedResourceType)
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
updateProtectionGroup_protectionGroupId :: Lens' UpdateProtectionGroup Text
-- | Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
updateProtectionGroup_aggregation :: Lens' UpdateProtectionGroup ProtectionGroupAggregation
-- | The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource Amazon Resource Names (ARNs), or include
-- all resources of a specified resource type.
updateProtectionGroup_pattern :: Lens' UpdateProtectionGroup ProtectionGroupPattern
-- | See: newUpdateProtectionGroupResponse smart constructor.
data UpdateProtectionGroupResponse
UpdateProtectionGroupResponse' :: Int -> UpdateProtectionGroupResponse
-- | The response's http status code.
[$sel:httpStatus:UpdateProtectionGroupResponse'] :: UpdateProtectionGroupResponse -> Int
-- | Create a value of UpdateProtectionGroupResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:UpdateProtectionGroupResponse',
-- updateProtectionGroupResponse_httpStatus - The response's http
-- status code.
newUpdateProtectionGroupResponse :: Int -> UpdateProtectionGroupResponse
-- | The response's http status code.
updateProtectionGroupResponse_httpStatus :: Lens' UpdateProtectionGroupResponse Int
instance GHC.Generics.Generic Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroup
instance GHC.Show.Show Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroup
instance GHC.Read.Read Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroup
instance GHC.Classes.Eq Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroup
instance GHC.Generics.Generic Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroupResponse
instance GHC.Show.Show Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroupResponse
instance GHC.Read.Read Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroupResponse
instance GHC.Classes.Eq Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroupResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroup
instance Control.DeepSeq.NFData Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroupResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroup
instance Control.DeepSeq.NFData Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroup
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroup
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroup
instance Amazonka.Data.Path.ToPath Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroup
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.UpdateProtectionGroup.UpdateProtectionGroup
-- | Updates the details of an existing subscription. Only enter values for
-- parameters you want to change. Empty parameters are not updated.
--
-- For accounts that are members of an Organizations organization, Shield
-- Advanced subscriptions are billed against the organization's payer
-- account, regardless of whether the payer account itself is subscribed.
module Amazonka.Shield.UpdateSubscription
-- | See: newUpdateSubscription smart constructor.
data UpdateSubscription
UpdateSubscription' :: Maybe AutoRenew -> UpdateSubscription
-- | When you initally create a subscription, AutoRenew is set to
-- ENABLED. If ENABLED, the subscription will be
-- automatically renewed at the end of the existing subscription period.
-- You can change this by submitting an UpdateSubscription
-- request. If the UpdateSubscription request does not included
-- a value for AutoRenew, the existing value for
-- AutoRenew remains unchanged.
[$sel:autoRenew:UpdateSubscription'] :: UpdateSubscription -> Maybe AutoRenew
-- | Create a value of UpdateSubscription with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- UpdateSubscription, updateSubscription_autoRenew - When
-- you initally create a subscription, AutoRenew is set to
-- ENABLED. If ENABLED, the subscription will be
-- automatically renewed at the end of the existing subscription period.
-- You can change this by submitting an UpdateSubscription
-- request. If the UpdateSubscription request does not included
-- a value for AutoRenew, the existing value for
-- AutoRenew remains unchanged.
newUpdateSubscription :: UpdateSubscription
-- | When you initally create a subscription, AutoRenew is set to
-- ENABLED. If ENABLED, the subscription will be
-- automatically renewed at the end of the existing subscription period.
-- You can change this by submitting an UpdateSubscription
-- request. If the UpdateSubscription request does not included
-- a value for AutoRenew, the existing value for
-- AutoRenew remains unchanged.
updateSubscription_autoRenew :: Lens' UpdateSubscription (Maybe AutoRenew)
-- | See: newUpdateSubscriptionResponse smart constructor.
data UpdateSubscriptionResponse
UpdateSubscriptionResponse' :: Int -> UpdateSubscriptionResponse
-- | The response's http status code.
[$sel:httpStatus:UpdateSubscriptionResponse'] :: UpdateSubscriptionResponse -> Int
-- | Create a value of UpdateSubscriptionResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:UpdateSubscriptionResponse',
-- updateSubscriptionResponse_httpStatus - The response's http
-- status code.
newUpdateSubscriptionResponse :: Int -> UpdateSubscriptionResponse
-- | The response's http status code.
updateSubscriptionResponse_httpStatus :: Lens' UpdateSubscriptionResponse Int
instance GHC.Generics.Generic Amazonka.Shield.UpdateSubscription.UpdateSubscription
instance GHC.Show.Show Amazonka.Shield.UpdateSubscription.UpdateSubscription
instance GHC.Read.Read Amazonka.Shield.UpdateSubscription.UpdateSubscription
instance GHC.Classes.Eq Amazonka.Shield.UpdateSubscription.UpdateSubscription
instance GHC.Generics.Generic Amazonka.Shield.UpdateSubscription.UpdateSubscriptionResponse
instance GHC.Show.Show Amazonka.Shield.UpdateSubscription.UpdateSubscriptionResponse
instance GHC.Read.Read Amazonka.Shield.UpdateSubscription.UpdateSubscriptionResponse
instance GHC.Classes.Eq Amazonka.Shield.UpdateSubscription.UpdateSubscriptionResponse
instance Amazonka.Types.AWSRequest Amazonka.Shield.UpdateSubscription.UpdateSubscription
instance Control.DeepSeq.NFData Amazonka.Shield.UpdateSubscription.UpdateSubscriptionResponse
instance Data.Hashable.Class.Hashable Amazonka.Shield.UpdateSubscription.UpdateSubscription
instance Control.DeepSeq.NFData Amazonka.Shield.UpdateSubscription.UpdateSubscription
instance Amazonka.Data.Headers.ToHeaders Amazonka.Shield.UpdateSubscription.UpdateSubscription
instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Shield.UpdateSubscription.UpdateSubscription
instance Amazonka.Data.Path.ToPath Amazonka.Shield.UpdateSubscription.UpdateSubscription
instance Amazonka.Data.Query.ToQuery Amazonka.Shield.UpdateSubscription.UpdateSubscription
module Amazonka.Shield.Lens
-- | The Amazon S3 bucket that contains the logs that you want to share.
associateDRTLogBucket_logBucket :: Lens' AssociateDRTLogBucket Text
-- | The response's http status code.
associateDRTLogBucketResponse_httpStatus :: Lens' AssociateDRTLogBucketResponse Int
-- | The Amazon Resource Name (ARN) of the role the SRT will use to access
-- your Amazon Web Services account.
--
-- Prior to making the AssociateDRTRole request, you must attach
-- the AWSShieldDRTAccessPolicy managed policy to this role. For
-- more information see Attaching and Detaching IAM Policies.
associateDRTRole_roleArn :: Lens' AssociateDRTRole Text
-- | The response's http status code.
associateDRTRoleResponse_httpStatus :: Lens' AssociateDRTRoleResponse Int
-- | The unique identifier (ID) for the Protection object to add the health
-- check association to.
associateHealthCheck_protectionId :: Lens' AssociateHealthCheck Text
-- | The Amazon Resource Name (ARN) of the health check to associate with
-- the protection.
associateHealthCheck_healthCheckArn :: Lens' AssociateHealthCheck Text
-- | The response's http status code.
associateHealthCheckResponse_httpStatus :: Lens' AssociateHealthCheckResponse Int
-- | A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you for escalations to the SRT and to
-- initiate proactive customer support.
--
-- To enable proactive engagement, the contact list must include at least
-- one phone number.
--
-- The contacts that you provide here replace any contacts that were
-- already defined. If you already have contacts defined and want to use
-- them, retrieve the list using
-- DescribeEmergencyContactSettings and then provide it here.
associateProactiveEngagementDetails_emergencyContactList :: Lens' AssociateProactiveEngagementDetails [EmergencyContact]
-- | The response's http status code.
associateProactiveEngagementDetailsResponse_httpStatus :: Lens' AssociateProactiveEngagementDetailsResponse Int
-- | One or more tag key-value pairs for the Protection object that is
-- created.
createProtection_tags :: Lens' CreateProtection (Maybe [Tag])
-- | Friendly name for the Protection you are creating.
createProtection_name :: Lens' CreateProtection Text
-- | The ARN (Amazon Resource Name) of the resource to be protected.
--
-- The ARN should be in one of the following formats:
--
--
-- - For an Application Load Balancer:
-- arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
--
-- - For an Elastic Load Balancer (Classic Load Balancer):
-- arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name
--
-- - For an Amazon CloudFront distribution:
-- arn:aws:cloudfront::account-id:distribution/distribution-id
--
-- - For an Global Accelerator standard accelerator:
-- arn:aws:globalaccelerator::account-id:accelerator/accelerator-id
--
-- - For Amazon Route 53:
-- arn:aws:route53:::hostedzone/hosted-zone-id
--
-- - For an Elastic IP address:
-- arn:aws:ec2:region:account-id:eip-allocation/allocation-id
--
--
createProtection_resourceArn :: Lens' CreateProtection Text
-- | The unique identifier (ID) for the Protection object that is created.
createProtectionResponse_protectionId :: Lens' CreateProtectionResponse (Maybe Text)
-- | The response's http status code.
createProtectionResponse_httpStatus :: Lens' CreateProtectionResponse Int
-- | The Amazon Resource Names (ARNs) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
createProtectionGroup_members :: Lens' CreateProtectionGroup (Maybe [Text])
-- | The resource type to include in the protection group. All protected
-- resources of this type are included in the protection group. Newly
-- protected resources of this type are automatically added to the group.
-- You must set this when you set Pattern to
-- BY_RESOURCE_TYPE and you must not set it for any other
-- Pattern setting.
createProtectionGroup_resourceType :: Lens' CreateProtectionGroup (Maybe ProtectedResourceType)
-- | One or more tag key-value pairs for the protection group.
createProtectionGroup_tags :: Lens' CreateProtectionGroup (Maybe [Tag])
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
createProtectionGroup_protectionGroupId :: Lens' CreateProtectionGroup Text
-- | Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- and origin resources for CloudFront distributions.
--
createProtectionGroup_aggregation :: Lens' CreateProtectionGroup ProtectionGroupAggregation
-- | The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource Amazon Resource Names (ARNs), or include
-- all resources of a specified resource type.
createProtectionGroup_pattern :: Lens' CreateProtectionGroup ProtectionGroupPattern
-- | The response's http status code.
createProtectionGroupResponse_httpStatus :: Lens' CreateProtectionGroupResponse Int
-- | The response's http status code.
createSubscriptionResponse_httpStatus :: Lens' CreateSubscriptionResponse Int
-- | The unique identifier (ID) for the Protection object to be deleted.
deleteProtection_protectionId :: Lens' DeleteProtection Text
-- | The response's http status code.
deleteProtectionResponse_httpStatus :: Lens' DeleteProtectionResponse Int
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
deleteProtectionGroup_protectionGroupId :: Lens' DeleteProtectionGroup Text
-- | The response's http status code.
deleteProtectionGroupResponse_httpStatus :: Lens' DeleteProtectionGroupResponse Int
-- | The unique identifier (ID) for the attack.
describeAttack_attackId :: Lens' DescribeAttack Text
-- | The attack that you requested.
describeAttackResponse_attack :: Lens' DescribeAttackResponse (Maybe AttackDetail)
-- | The response's http status code.
describeAttackResponse_httpStatus :: Lens' DescribeAttackResponse Int
-- | The response's http status code.
describeAttackStatisticsResponse_httpStatus :: Lens' DescribeAttackStatisticsResponse Int
-- | The time range of the attack.
describeAttackStatisticsResponse_timeRange :: Lens' DescribeAttackStatisticsResponse TimeRange
-- | The data that describes the attacks detected during the time period.
describeAttackStatisticsResponse_dataItems :: Lens' DescribeAttackStatisticsResponse [AttackStatisticsDataItem]
-- | The list of Amazon S3 buckets accessed by the SRT.
describeDRTAccessResponse_logBucketList :: Lens' DescribeDRTAccessResponse (Maybe [Text])
-- | The Amazon Resource Name (ARN) of the role the SRT used to access your
-- Amazon Web Services account.
describeDRTAccessResponse_roleArn :: Lens' DescribeDRTAccessResponse (Maybe Text)
-- | The response's http status code.
describeDRTAccessResponse_httpStatus :: Lens' DescribeDRTAccessResponse Int
-- | A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you if you have proactive engagement
-- enabled, for escalations to the SRT and to initiate proactive customer
-- support.
describeEmergencyContactSettingsResponse_emergencyContactList :: Lens' DescribeEmergencyContactSettingsResponse (Maybe [EmergencyContact])
-- | The response's http status code.
describeEmergencyContactSettingsResponse_httpStatus :: Lens' DescribeEmergencyContactSettingsResponse Int
-- | The unique identifier (ID) for the Protection object to describe. You
-- must provide either the ResourceArn of the protected resource
-- or the ProtectionID of the protection, but not both.
describeProtection_protectionId :: Lens' DescribeProtection (Maybe Text)
-- | The ARN (Amazon Resource Name) of the protected Amazon Web Services
-- resource. You must provide either the ResourceArn of the
-- protected resource or the ProtectionID of the protection, but
-- not both.
describeProtection_resourceArn :: Lens' DescribeProtection (Maybe Text)
-- | The Protection that you requested.
describeProtectionResponse_protection :: Lens' DescribeProtectionResponse (Maybe Protection)
-- | The response's http status code.
describeProtectionResponse_httpStatus :: Lens' DescribeProtectionResponse Int
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
describeProtectionGroup_protectionGroupId :: Lens' DescribeProtectionGroup Text
-- | The response's http status code.
describeProtectionGroupResponse_httpStatus :: Lens' DescribeProtectionGroupResponse Int
-- | A grouping of protected resources that you and Shield Advanced can
-- monitor as a collective. This resource grouping improves the accuracy
-- of detection and reduces false positives.
describeProtectionGroupResponse_protectionGroup :: Lens' DescribeProtectionGroupResponse ProtectionGroup
-- | The Shield Advanced subscription details for an account.
describeSubscriptionResponse_subscription :: Lens' DescribeSubscriptionResponse (Maybe Subscription)
-- | The response's http status code.
describeSubscriptionResponse_httpStatus :: Lens' DescribeSubscriptionResponse Int
-- | The ARN (Amazon Resource Name) of the protected resource.
disableApplicationLayerAutomaticResponse_resourceArn :: Lens' DisableApplicationLayerAutomaticResponse Text
-- | The response's http status code.
disableApplicationLayerAutomaticResponseResponse_httpStatus :: Lens' DisableApplicationLayerAutomaticResponseResponse Int
-- | The response's http status code.
disableProactiveEngagementResponse_httpStatus :: Lens' DisableProactiveEngagementResponse Int
-- | The Amazon S3 bucket that contains the logs that you want to share.
disassociateDRTLogBucket_logBucket :: Lens' DisassociateDRTLogBucket Text
-- | The response's http status code.
disassociateDRTLogBucketResponse_httpStatus :: Lens' DisassociateDRTLogBucketResponse Int
-- | The response's http status code.
disassociateDRTRoleResponse_httpStatus :: Lens' DisassociateDRTRoleResponse Int
-- | The unique identifier (ID) for the Protection object to remove the
-- health check association from.
disassociateHealthCheck_protectionId :: Lens' DisassociateHealthCheck Text
-- | The Amazon Resource Name (ARN) of the health check that is associated
-- with the protection.
disassociateHealthCheck_healthCheckArn :: Lens' DisassociateHealthCheck Text
-- | The response's http status code.
disassociateHealthCheckResponse_httpStatus :: Lens' DisassociateHealthCheckResponse Int
-- | The ARN (Amazon Resource Name) of the protected resource.
enableApplicationLayerAutomaticResponse_resourceArn :: Lens' EnableApplicationLayerAutomaticResponse Text
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
enableApplicationLayerAutomaticResponse_action :: Lens' EnableApplicationLayerAutomaticResponse ResponseAction
-- | The response's http status code.
enableApplicationLayerAutomaticResponseResponse_httpStatus :: Lens' EnableApplicationLayerAutomaticResponseResponse Int
-- | The response's http status code.
enableProactiveEngagementResponse_httpStatus :: Lens' EnableProactiveEngagementResponse Int
-- | The response's http status code.
getSubscriptionStateResponse_httpStatus :: Lens' GetSubscriptionStateResponse Int
-- | The status of the subscription.
getSubscriptionStateResponse_subscriptionState :: Lens' GetSubscriptionStateResponse SubscriptionState
-- | The end of the time period for the attacks. This is a
-- timestamp type. The request syntax listing for this call
-- indicates a number type, but you can provide the time in any
-- valid timestamp format setting.
listAttacks_endTime :: Lens' ListAttacks (Maybe TimeRange)
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
listAttacks_maxResults :: Lens' ListAttacks (Maybe Natural)
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
listAttacks_nextToken :: Lens' ListAttacks (Maybe Text)
-- | The ARNs (Amazon Resource Names) of the resources that were attacked.
-- If you leave this blank, all applicable resources for this account
-- will be included.
listAttacks_resourceArns :: Lens' ListAttacks (Maybe [Text])
-- | The start of the time period for the attacks. This is a
-- timestamp type. The request syntax listing for this call
-- indicates a number type, but you can provide the time in any
-- valid timestamp format setting.
listAttacks_startTime :: Lens' ListAttacks (Maybe TimeRange)
-- | The attack information for the specified time range.
listAttacksResponse_attackSummaries :: Lens' ListAttacksResponse (Maybe [AttackSummary])
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
listAttacksResponse_nextToken :: Lens' ListAttacksResponse (Maybe Text)
-- | The response's http status code.
listAttacksResponse_httpStatus :: Lens' ListAttacksResponse Int
-- | Narrows the set of protection groups that the call retrieves. You can
-- retrieve a single protection group by its name and you can retrieve
-- all protection groups that are configured with specific pattern or
-- aggregation settings. You can provide up to one criteria per filter
-- type. Shield Advanced returns the protection groups that exactly match
-- all of the search criteria that you provide.
listProtectionGroups_inclusionFilters :: Lens' ListProtectionGroups (Maybe InclusionProtectionGroupFilters)
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
listProtectionGroups_maxResults :: Lens' ListProtectionGroups (Maybe Natural)
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
listProtectionGroups_nextToken :: Lens' ListProtectionGroups (Maybe Text)
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
listProtectionGroupsResponse_nextToken :: Lens' ListProtectionGroupsResponse (Maybe Text)
-- | The response's http status code.
listProtectionGroupsResponse_httpStatus :: Lens' ListProtectionGroupsResponse Int
listProtectionGroupsResponse_protectionGroups :: Lens' ListProtectionGroupsResponse [ProtectionGroup]
-- | Narrows the set of protections that the call retrieves. You can
-- retrieve a single protection by providing its name or the ARN (Amazon
-- Resource Name) of its protected resource. You can also retrieve all
-- protections for a specific resource type. You can provide up to one
-- criteria per filter type. Shield Advanced returns protections that
-- exactly match all of the filter criteria that you provide.
listProtections_inclusionFilters :: Lens' ListProtections (Maybe InclusionProtectionFilters)
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
listProtections_maxResults :: Lens' ListProtections (Maybe Natural)
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
listProtections_nextToken :: Lens' ListProtections (Maybe Text)
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
listProtectionsResponse_nextToken :: Lens' ListProtectionsResponse (Maybe Text)
-- | The array of enabled Protection objects.
listProtectionsResponse_protections :: Lens' ListProtectionsResponse (Maybe [Protection])
-- | The response's http status code.
listProtectionsResponse_httpStatus :: Lens' ListProtectionsResponse Int
-- | The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
listResourcesInProtectionGroup_maxResults :: Lens' ListResourcesInProtectionGroup (Maybe Natural)
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
listResourcesInProtectionGroup_nextToken :: Lens' ListResourcesInProtectionGroup (Maybe Text)
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
listResourcesInProtectionGroup_protectionGroupId :: Lens' ListResourcesInProtectionGroup Text
-- | When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
listResourcesInProtectionGroupResponse_nextToken :: Lens' ListResourcesInProtectionGroupResponse (Maybe Text)
-- | The response's http status code.
listResourcesInProtectionGroupResponse_httpStatus :: Lens' ListResourcesInProtectionGroupResponse Int
-- | The Amazon Resource Names (ARNs) of the resources that are included in
-- the protection group.
listResourcesInProtectionGroupResponse_resourceArns :: Lens' ListResourcesInProtectionGroupResponse [Text]
-- | The Amazon Resource Name (ARN) of the resource to get tags for.
listTagsForResource_resourceARN :: Lens' ListTagsForResource Text
-- | A list of tag key and value pairs associated with the specified
-- resource.
listTagsForResourceResponse_tags :: Lens' ListTagsForResourceResponse (Maybe [Tag])
-- | The response's http status code.
listTagsForResourceResponse_httpStatus :: Lens' ListTagsForResourceResponse Int
-- | The Amazon Resource Name (ARN) of the resource that you want to add or
-- update tags for.
tagResource_resourceARN :: Lens' TagResource Text
-- | The tags that you want to modify or add to the resource.
tagResource_tags :: Lens' TagResource [Tag]
-- | The response's http status code.
tagResourceResponse_httpStatus :: Lens' TagResourceResponse Int
-- | The Amazon Resource Name (ARN) of the resource that you want to remove
-- tags from.
untagResource_resourceARN :: Lens' UntagResource Text
-- | The tag key for each tag that you want to remove from the resource.
untagResource_tagKeys :: Lens' UntagResource [Text]
-- | The response's http status code.
untagResourceResponse_httpStatus :: Lens' UntagResourceResponse Int
-- | The ARN (Amazon Resource Name) of the resource.
updateApplicationLayerAutomaticResponse_resourceArn :: Lens' UpdateApplicationLayerAutomaticResponse Text
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
updateApplicationLayerAutomaticResponse_action :: Lens' UpdateApplicationLayerAutomaticResponse ResponseAction
-- | The response's http status code.
updateApplicationLayerAutomaticResponseResponse_httpStatus :: Lens' UpdateApplicationLayerAutomaticResponseResponse Int
-- | A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you if you have proactive engagement
-- enabled, for escalations to the SRT and to initiate proactive customer
-- support.
--
-- If you have proactive engagement enabled, the contact list must
-- include at least one phone number.
updateEmergencyContactSettings_emergencyContactList :: Lens' UpdateEmergencyContactSettings (Maybe [EmergencyContact])
-- | The response's http status code.
updateEmergencyContactSettingsResponse_httpStatus :: Lens' UpdateEmergencyContactSettingsResponse Int
-- | The Amazon Resource Names (ARNs) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
updateProtectionGroup_members :: Lens' UpdateProtectionGroup (Maybe [Text])
-- | The resource type to include in the protection group. All protected
-- resources of this type are included in the protection group. You must
-- set this when you set Pattern to BY_RESOURCE_TYPE
-- and you must not set it for any other Pattern setting.
updateProtectionGroup_resourceType :: Lens' UpdateProtectionGroup (Maybe ProtectedResourceType)
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
updateProtectionGroup_protectionGroupId :: Lens' UpdateProtectionGroup Text
-- | Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
updateProtectionGroup_aggregation :: Lens' UpdateProtectionGroup ProtectionGroupAggregation
-- | The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource Amazon Resource Names (ARNs), or include
-- all resources of a specified resource type.
updateProtectionGroup_pattern :: Lens' UpdateProtectionGroup ProtectionGroupPattern
-- | The response's http status code.
updateProtectionGroupResponse_httpStatus :: Lens' UpdateProtectionGroupResponse Int
-- | When you initally create a subscription, AutoRenew is set to
-- ENABLED. If ENABLED, the subscription will be
-- automatically renewed at the end of the existing subscription period.
-- You can change this by submitting an UpdateSubscription
-- request. If the UpdateSubscription request does not included
-- a value for AutoRenew, the existing value for
-- AutoRenew remains unchanged.
updateSubscription_autoRenew :: Lens' UpdateSubscription (Maybe AutoRenew)
-- | The response's http status code.
updateSubscriptionResponse_httpStatus :: Lens' UpdateSubscriptionResponse Int
-- | Indicates whether automatic application layer DDoS mitigation is
-- enabled for the protection.
applicationLayerAutomaticResponseConfiguration_status :: Lens' ApplicationLayerAutomaticResponseConfiguration ApplicationLayerAutomaticResponseStatus
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
applicationLayerAutomaticResponseConfiguration_action :: Lens' ApplicationLayerAutomaticResponseConfiguration ResponseAction
-- | List of counters that describe the attack for the specified time
-- period.
attackDetail_attackCounters :: Lens' AttackDetail (Maybe [SummarizedCounter])
-- | The unique identifier (ID) of the attack.
attackDetail_attackId :: Lens' AttackDetail (Maybe Text)
-- | The array of objects that provide details of the Shield event.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
attackDetail_attackProperties :: Lens' AttackDetail (Maybe [AttackProperty])
-- | The time the attack ended, in Unix time in seconds.
attackDetail_endTime :: Lens' AttackDetail (Maybe UTCTime)
-- | List of mitigation actions taken for the attack.
attackDetail_mitigations :: Lens' AttackDetail (Maybe [Mitigation])
-- | The ARN (Amazon Resource Name) of the resource that was attacked.
attackDetail_resourceArn :: Lens' AttackDetail (Maybe Text)
-- | The time the attack started, in Unix time in seconds.
attackDetail_startTime :: Lens' AttackDetail (Maybe UTCTime)
-- | If applicable, additional detail about the resource being attacked,
-- for example, IP address or URL.
attackDetail_subResources :: Lens' AttackDetail (Maybe [SubResourceSummary])
-- | The type of Shield event that was observed. NETWORK indicates
-- layer 3 and layer 4 events and APPLICATION indicates layer 7
-- events.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
attackProperty_attackLayer :: Lens' AttackProperty (Maybe AttackLayer)
-- | Defines the Shield event property information that is provided. The
-- WORDPRESS_PINGBACK_REFLECTOR and
-- WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress
-- reflective pingback events.
attackProperty_attackPropertyIdentifier :: Lens' AttackProperty (Maybe AttackPropertyIdentifier)
-- | Contributor objects for the top five contributors to a Shield event. A
-- contributor is a source of traffic that Shield Advanced identifies as
-- responsible for some or all of an event.
attackProperty_topContributors :: Lens' AttackProperty (Maybe [Contributor])
-- | The total contributions made to this Shield event by all contributors.
attackProperty_total :: Lens' AttackProperty (Maybe Integer)
-- | The unit used for the Contributor Value property.
attackProperty_unit :: Lens' AttackProperty (Maybe Unit)
-- | Information about the volume of attacks during the time period. If the
-- accompanying AttackCount is zero, this setting might be
-- empty.
attackStatisticsDataItem_attackVolume :: Lens' AttackStatisticsDataItem (Maybe AttackVolume)
-- | The number of attacks detected during the time period. This is always
-- present, but might be zero.
attackStatisticsDataItem_attackCount :: Lens' AttackStatisticsDataItem Integer
-- | The unique identifier (ID) of the attack.
attackSummary_attackId :: Lens' AttackSummary (Maybe Text)
-- | The list of attacks for a specified time period.
attackSummary_attackVectors :: Lens' AttackSummary (Maybe [AttackVectorDescription])
-- | The end time of the attack, in Unix time in seconds.
attackSummary_endTime :: Lens' AttackSummary (Maybe UTCTime)
-- | The ARN (Amazon Resource Name) of the resource that was attacked.
attackSummary_resourceArn :: Lens' AttackSummary (Maybe Text)
-- | The start time of the attack, in Unix time in seconds.
attackSummary_startTime :: Lens' AttackSummary (Maybe UTCTime)
-- | The attack type. Valid values:
--
--
-- - UDP_TRAFFIC
-- - UDP_FRAGMENT
-- - GENERIC_UDP_REFLECTION
-- - DNS_REFLECTION
-- - NTP_REFLECTION
-- - CHARGEN_REFLECTION
-- - SSDP_REFLECTION
-- - PORT_MAPPER
-- - RIP_REFLECTION
-- - SNMP_REFLECTION
-- - MSSQL_REFLECTION
-- - NET_BIOS_REFLECTION
-- - SYN_FLOOD
-- - ACK_FLOOD
-- - REQUEST_FLOOD
-- - HTTP_REFLECTION
-- - UDS_REFLECTION
-- - MEMCACHED_REFLECTION
--
attackVectorDescription_vectorType :: Lens' AttackVectorDescription Text
-- | A statistics object that uses bits per second as the unit. This is
-- included for network level attacks.
attackVolume_bitsPerSecond :: Lens' AttackVolume (Maybe AttackVolumeStatistics)
-- | A statistics object that uses packets per second as the unit. This is
-- included for network level attacks.
attackVolume_packetsPerSecond :: Lens' AttackVolume (Maybe AttackVolumeStatistics)
-- | A statistics object that uses requests per second as the unit. This is
-- included for application level attacks, and is only available for
-- accounts that are subscribed to Shield Advanced.
attackVolume_requestsPerSecond :: Lens' AttackVolume (Maybe AttackVolumeStatistics)
-- | The maximum attack volume observed for the given unit.
attackVolumeStatistics_max :: Lens' AttackVolumeStatistics Double
-- | The name of the contributor. The type of name that you'll find here
-- depends on the AttackPropertyIdentifier setting in the
-- AttackProperty where this contributor is defined. For
-- example, if the AttackPropertyIdentifier is
-- SOURCE_COUNTRY, the Name could be United
-- States.
contributor_name :: Lens' Contributor (Maybe Text)
-- | The contribution of this contributor expressed in Protection units.
-- For example 10,000.
contributor_value :: Lens' Contributor (Maybe Integer)
-- | Additional notes regarding the contact.
emergencyContact_contactNotes :: Lens' EmergencyContact (Maybe Text)
-- | The phone number for the contact.
emergencyContact_phoneNumber :: Lens' EmergencyContact (Maybe Text)
-- | The email address for the contact.
emergencyContact_emailAddress :: Lens' EmergencyContact Text
-- | The name of the protection that you want to retrieve.
inclusionProtectionFilters_protectionNames :: Lens' InclusionProtectionFilters (Maybe (NonEmpty Text))
-- | The ARN (Amazon Resource Name) of the resource whose protection you
-- want to retrieve.
inclusionProtectionFilters_resourceArns :: Lens' InclusionProtectionFilters (Maybe (NonEmpty Text))
-- | The type of protected resource whose protections you want to retrieve.
inclusionProtectionFilters_resourceTypes :: Lens' InclusionProtectionFilters (Maybe (NonEmpty ProtectedResourceType))
-- | The aggregation setting of the protection groups that you want to
-- retrieve.
inclusionProtectionGroupFilters_aggregations :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty ProtectionGroupAggregation))
-- | The pattern specification of the protection groups that you want to
-- retrieve.
inclusionProtectionGroupFilters_patterns :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty ProtectionGroupPattern))
-- | The ID of the protection group that you want to retrieve.
inclusionProtectionGroupFilters_protectionGroupIds :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty Text))
-- | The resource type configuration of the protection groups that you want
-- to retrieve. In the protection group configuration, you specify the
-- resource type when you set the group's Pattern to
-- BY_RESOURCE_TYPE.
inclusionProtectionGroupFilters_resourceTypes :: Lens' InclusionProtectionGroupFilters (Maybe (NonEmpty ProtectedResourceType))
-- | The maximum number of protections that can be created for the
-- specified Type.
limit_max :: Lens' Limit (Maybe Integer)
-- | The type of protection.
limit_type :: Lens' Limit (Maybe Text)
-- | The name of the mitigation taken for this attack.
mitigation_mitigationName :: Lens' Mitigation (Maybe Text)
-- | The automatic application layer DDoS mitigation settings for the
-- protection. This configuration determines whether Shield Advanced
-- automatically manages rules in the web ACL in order to respond to
-- application layer events that Shield Advanced determines to be DDoS
-- attacks.
protection_applicationLayerAutomaticResponseConfiguration :: Lens' Protection (Maybe ApplicationLayerAutomaticResponseConfiguration)
-- | The unique identifier (ID) for the Route 53 health check that's
-- associated with the protection.
protection_healthCheckIds :: Lens' Protection (Maybe [Text])
-- | The unique identifier (ID) of the protection.
protection_id :: Lens' Protection (Maybe Text)
-- | The name of the protection. For example, My CloudFront
-- distributions.
protection_name :: Lens' Protection (Maybe Text)
-- | The ARN (Amazon Resource Name) of the protection.
protection_protectionArn :: Lens' Protection (Maybe Text)
-- | The ARN (Amazon Resource Name) of the Amazon Web Services resource
-- that is protected.
protection_resourceArn :: Lens' Protection (Maybe Text)
-- | The ARN (Amazon Resource Name) of the protection group.
protectionGroup_protectionGroupArn :: Lens' ProtectionGroup (Maybe Text)
-- | The resource type to include in the protection group. All protected
-- resources of this type are included in the protection group. You must
-- set this when you set Pattern to BY_RESOURCE_TYPE
-- and you must not set it for any other Pattern setting.
protectionGroup_resourceType :: Lens' ProtectionGroup (Maybe ProtectedResourceType)
-- | The name of the protection group. You use this to identify the
-- protection group in lists and to manage the protection group, for
-- example to update, delete, or describe it.
protectionGroup_protectionGroupId :: Lens' ProtectionGroup Text
-- | Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
protectionGroup_aggregation :: Lens' ProtectionGroup ProtectionGroupAggregation
-- | The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource ARNs (Amazon Resource Names), or include
-- all resources of a specified resource type.
protectionGroup_pattern :: Lens' ProtectionGroup ProtectionGroupPattern
-- | The ARNs (Amazon Resource Names) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
protectionGroup_members :: Lens' ProtectionGroup [Text]
-- | The maximum number of resources you can specify for a single arbitrary
-- pattern in a protection group.
protectionGroupArbitraryPatternLimits_maxMembers :: Lens' ProtectionGroupArbitraryPatternLimits Integer
-- | The maximum number of protection groups that you can have at one time.
protectionGroupLimits_maxProtectionGroups :: Lens' ProtectionGroupLimits Integer
-- | Limits settings by pattern type in the protection groups for your
-- subscription.
protectionGroupLimits_patternTypeLimits :: Lens' ProtectionGroupLimits ProtectionGroupPatternTypeLimits
-- | Limits settings on protection groups with arbitrary pattern type.
protectionGroupPatternTypeLimits_arbitraryPatternLimits :: Lens' ProtectionGroupPatternTypeLimits ProtectionGroupArbitraryPatternLimits
-- | The maximum number of resource types that you can specify in a
-- protection.
protectionLimits_protectedResourceTypeLimits :: Lens' ProtectionLimits [Limit]
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Block action.
--
-- You must specify exactly one action, either Block or
-- Count.
responseAction_block :: Lens' ResponseAction (Maybe BlockAction)
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Count action.
--
-- You must specify exactly one action, either Block or
-- Count.
responseAction_count :: Lens' ResponseAction (Maybe CountAction)
-- | The list of attack types and associated counters.
subResourceSummary_attackVectors :: Lens' SubResourceSummary (Maybe [SummarizedAttackVector])
-- | The counters that describe the details of the attack.
subResourceSummary_counters :: Lens' SubResourceSummary (Maybe [SummarizedCounter])
-- | The unique identifier (ID) of the SubResource.
subResourceSummary_id :: Lens' SubResourceSummary (Maybe Text)
-- | The SubResource type.
subResourceSummary_type :: Lens' SubResourceSummary (Maybe SubResourceType)
-- | If ENABLED, the subscription will be automatically renewed at
-- the end of the existing subscription period.
--
-- When you initally create a subscription, AutoRenew is set to
-- ENABLED. You can change this by submitting an
-- UpdateSubscription request. If the
-- UpdateSubscription request does not included a value for
-- AutoRenew, the existing value for AutoRenew remains
-- unchanged.
subscription_autoRenew :: Lens' Subscription (Maybe AutoRenew)
-- | The date and time your subscription will end.
subscription_endTime :: Lens' Subscription (Maybe UTCTime)
-- | Specifies how many protections of a given type you can create.
subscription_limits :: Lens' Subscription (Maybe [Limit])
-- | If ENABLED, the Shield Response Team (SRT) will use email and
-- phone to notify contacts about escalations to the SRT and to initiate
-- proactive customer support.
--
-- If PENDING, you have requested proactive engagement and the
-- request is pending. The status changes to ENABLED when your
-- request is fully processed.
--
-- If DISABLED, the SRT will not proactively notify contacts
-- about escalations or to initiate proactive customer support.
subscription_proactiveEngagementStatus :: Lens' Subscription (Maybe ProactiveEngagementStatus)
-- | The start time of the subscription, in Unix time in seconds.
subscription_startTime :: Lens' Subscription (Maybe UTCTime)
-- | The ARN (Amazon Resource Name) of the subscription.
subscription_subscriptionArn :: Lens' Subscription (Maybe Text)
-- | The length, in seconds, of the Shield Advanced subscription for the
-- account.
subscription_timeCommitmentInSeconds :: Lens' Subscription (Maybe Natural)
-- | Limits settings for your subscription.
subscription_subscriptionLimits :: Lens' Subscription SubscriptionLimits
-- | Limits settings on protections for your subscription.
subscriptionLimits_protectionLimits :: Lens' SubscriptionLimits ProtectionLimits
-- | Limits settings on protection groups for your subscription.
subscriptionLimits_protectionGroupLimits :: Lens' SubscriptionLimits ProtectionGroupLimits
-- | The list of counters that describe the details of the attack.
summarizedAttackVector_vectorCounters :: Lens' SummarizedAttackVector (Maybe [SummarizedCounter])
-- | The attack type, for example, SNMP reflection or SYN flood.
summarizedAttackVector_vectorType :: Lens' SummarizedAttackVector Text
-- | The average value of the counter for a specified time period.
summarizedCounter_average :: Lens' SummarizedCounter (Maybe Double)
-- | The maximum value of the counter for a specified time period.
summarizedCounter_max :: Lens' SummarizedCounter (Maybe Double)
-- | The number of counters for a specified time period.
summarizedCounter_n :: Lens' SummarizedCounter (Maybe Int)
-- | The counter name.
summarizedCounter_name :: Lens' SummarizedCounter (Maybe Text)
-- | The total of counter values for a specified time period.
summarizedCounter_sum :: Lens' SummarizedCounter (Maybe Double)
-- | The unit of the counters.
summarizedCounter_unit :: Lens' SummarizedCounter (Maybe Text)
-- | Part of the key:value pair that defines a tag. You can use a tag key
-- to describe a category of information, such as "customer." Tag keys
-- are case-sensitive.
tag_key :: Lens' Tag (Maybe Text)
-- | Part of the key:value pair that defines a tag. You can use a tag value
-- to describe a specific value within a category, such as "companyA" or
-- "companyB." Tag values are case-sensitive.
tag_value :: Lens' Tag (Maybe Text)
-- | The start time, in Unix time in seconds.
timeRange_fromInclusive :: Lens' TimeRange (Maybe UTCTime)
-- | The end time, in Unix time in seconds.
timeRange_toExclusive :: Lens' TimeRange (Maybe UTCTime)
module Amazonka.Shield.Waiters
-- | Derived from API version 2016-06-02 of the AWS service
-- descriptions, licensed under Apache 2.0.
--
-- Shield Advanced
--
-- This is the Shield Advanced API Reference. This guide is for
-- developers who need detailed information about the Shield Advanced API
-- actions, data types, and errors. For detailed information about WAF
-- and Shield Advanced features and an overview of how to use the WAF and
-- Shield Advanced APIs, see the WAF and Shield Developer Guide.
module Amazonka.Shield
-- | API version 2016-06-02 of the Amazon Shield SDK
-- configuration.
defaultService :: Service
-- | Exception that indicates the specified AttackId does not
-- exist, or the requester does not have the appropriate permissions to
-- access the AttackId.
_AccessDeniedException :: AsError a => Fold a ServiceError
-- | 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
-- Granting a User Permissions to Pass a Role to an Amazon Web
-- Services Service.
_AccessDeniedForDependencyException :: AsError a => Fold a ServiceError
-- | Exception that indicates that a problem occurred with the service
-- infrastructure. You can retry the request.
_InternalErrorException :: AsError a => Fold a ServiceError
-- | Exception that indicates that the operation would not cause any change
-- to occur.
_InvalidOperationException :: AsError a => Fold a ServiceError
-- | 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 :: AsError a => Fold a ServiceError
-- | Exception that indicates that the parameters passed to the API are
-- invalid. If available, this exception includes details in additional
-- properties.
_InvalidParameterException :: AsError a => Fold a ServiceError
-- | Exception that indicates that the resource is invalid. You might not
-- have access to the resource, or the resource might not exist.
_InvalidResourceException :: AsError a => Fold a ServiceError
-- | Exception that indicates that the operation would exceed a limit.
_LimitsExceededException :: AsError a => Fold a ServiceError
-- | 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 :: AsError a => Fold a ServiceError
-- | The ARN of the role that you specified does not exist.
_NoAssociatedRoleException :: AsError a => Fold a ServiceError
-- | Exception that indicates that the resource state has been modified by
-- another client. Retrieve the resource and then retry your request.
_OptimisticLockException :: AsError a => Fold a ServiceError
-- | Exception indicating the specified resource already exists. If
-- available, this exception includes details in additional properties.
_ResourceAlreadyExistsException :: AsError a => Fold a ServiceError
-- | Exception indicating the specified resource does not exist. If
-- available, this exception includes details in additional properties.
_ResourceNotFoundException :: AsError a => Fold a ServiceError
-- | See: newAssociateDRTLogBucket smart constructor.
data AssociateDRTLogBucket
AssociateDRTLogBucket' :: Text -> AssociateDRTLogBucket
-- | Create a value of AssociateDRTLogBucket with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:logBucket:AssociateDRTLogBucket',
-- associateDRTLogBucket_logBucket - The Amazon S3 bucket that
-- contains the logs that you want to share.
newAssociateDRTLogBucket :: Text -> AssociateDRTLogBucket
-- | See: newAssociateDRTLogBucketResponse smart constructor.
data AssociateDRTLogBucketResponse
AssociateDRTLogBucketResponse' :: Int -> AssociateDRTLogBucketResponse
-- | Create a value of AssociateDRTLogBucketResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:AssociateDRTLogBucketResponse',
-- associateDRTLogBucketResponse_httpStatus - The response's http
-- status code.
newAssociateDRTLogBucketResponse :: Int -> AssociateDRTLogBucketResponse
-- | See: newAssociateDRTRole smart constructor.
data AssociateDRTRole
AssociateDRTRole' :: Text -> AssociateDRTRole
-- | Create a value of AssociateDRTRole with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:roleArn:AssociateDRTRole', associateDRTRole_roleArn
-- - The Amazon Resource Name (ARN) of the role the SRT will use to
-- access your Amazon Web Services account.
--
-- Prior to making the AssociateDRTRole request, you must attach
-- the AWSShieldDRTAccessPolicy managed policy to this role. For
-- more information see Attaching and Detaching IAM Policies.
newAssociateDRTRole :: Text -> AssociateDRTRole
-- | See: newAssociateDRTRoleResponse smart constructor.
data AssociateDRTRoleResponse
AssociateDRTRoleResponse' :: Int -> AssociateDRTRoleResponse
-- | Create a value of AssociateDRTRoleResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:AssociateDRTRoleResponse',
-- associateDRTRoleResponse_httpStatus - The response's http
-- status code.
newAssociateDRTRoleResponse :: Int -> AssociateDRTRoleResponse
-- | See: newAssociateHealthCheck smart constructor.
data AssociateHealthCheck
AssociateHealthCheck' :: Text -> Text -> AssociateHealthCheck
-- | Create a value of AssociateHealthCheck with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionId:AssociateHealthCheck',
-- associateHealthCheck_protectionId - The unique identifier (ID)
-- for the Protection object to add the health check association to.
--
-- $sel:healthCheckArn:AssociateHealthCheck',
-- associateHealthCheck_healthCheckArn - The Amazon Resource Name
-- (ARN) of the health check to associate with the protection.
newAssociateHealthCheck :: Text -> Text -> AssociateHealthCheck
-- | See: newAssociateHealthCheckResponse smart constructor.
data AssociateHealthCheckResponse
AssociateHealthCheckResponse' :: Int -> AssociateHealthCheckResponse
-- | Create a value of AssociateHealthCheckResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:AssociateHealthCheckResponse',
-- associateHealthCheckResponse_httpStatus - The response's http
-- status code.
newAssociateHealthCheckResponse :: Int -> AssociateHealthCheckResponse
-- | See: newAssociateProactiveEngagementDetails smart
-- constructor.
data AssociateProactiveEngagementDetails
AssociateProactiveEngagementDetails' :: [EmergencyContact] -> AssociateProactiveEngagementDetails
-- | Create a value of AssociateProactiveEngagementDetails with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:emergencyContactList:AssociateProactiveEngagementDetails',
-- associateProactiveEngagementDetails_emergencyContactList - A
-- list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you for escalations to the SRT and to
-- initiate proactive customer support.
--
-- To enable proactive engagement, the contact list must include at least
-- one phone number.
--
-- The contacts that you provide here replace any contacts that were
-- already defined. If you already have contacts defined and want to use
-- them, retrieve the list using
-- DescribeEmergencyContactSettings and then provide it here.
newAssociateProactiveEngagementDetails :: AssociateProactiveEngagementDetails
-- | See: newAssociateProactiveEngagementDetailsResponse
-- smart constructor.
data AssociateProactiveEngagementDetailsResponse
AssociateProactiveEngagementDetailsResponse' :: Int -> AssociateProactiveEngagementDetailsResponse
-- | Create a value of AssociateProactiveEngagementDetailsResponse
-- with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:AssociateProactiveEngagementDetailsResponse',
-- associateProactiveEngagementDetailsResponse_httpStatus - The
-- response's http status code.
newAssociateProactiveEngagementDetailsResponse :: Int -> AssociateProactiveEngagementDetailsResponse
-- | See: newCreateProtection smart constructor.
data CreateProtection
CreateProtection' :: Maybe [Tag] -> Text -> Text -> CreateProtection
-- | Create a value of CreateProtection with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:tags:CreateProtection', createProtection_tags - One
-- or more tag key-value pairs for the Protection object that is created.
--
-- CreateProtection, createProtection_name - Friendly name
-- for the Protection you are creating.
--
-- CreateProtection, createProtection_resourceArn - The ARN
-- (Amazon Resource Name) of the resource to be protected.
--
-- The ARN should be in one of the following formats:
--
--
-- - For an Application Load Balancer:
-- arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
--
-- - For an Elastic Load Balancer (Classic Load Balancer):
-- arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name
--
-- - For an Amazon CloudFront distribution:
-- arn:aws:cloudfront::account-id:distribution/distribution-id
--
-- - For an Global Accelerator standard accelerator:
-- arn:aws:globalaccelerator::account-id:accelerator/accelerator-id
--
-- - For Amazon Route 53:
-- arn:aws:route53:::hostedzone/hosted-zone-id
--
-- - For an Elastic IP address:
-- arn:aws:ec2:region:account-id:eip-allocation/allocation-id
--
--
newCreateProtection :: Text -> Text -> CreateProtection
-- | See: newCreateProtectionResponse smart constructor.
data CreateProtectionResponse
CreateProtectionResponse' :: Maybe Text -> Int -> CreateProtectionResponse
-- | Create a value of CreateProtectionResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionId:CreateProtectionResponse',
-- createProtectionResponse_protectionId - The unique identifier
-- (ID) for the Protection object that is created.
--
-- $sel:httpStatus:CreateProtectionResponse',
-- createProtectionResponse_httpStatus - The response's http
-- status code.
newCreateProtectionResponse :: Int -> CreateProtectionResponse
-- | See: newCreateProtectionGroup smart constructor.
data CreateProtectionGroup
CreateProtectionGroup' :: Maybe [Text] -> Maybe ProtectedResourceType -> Maybe [Tag] -> Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> CreateProtectionGroup
-- | Create a value of CreateProtectionGroup with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- CreateProtectionGroup, createProtectionGroup_members -
-- The Amazon Resource Names (ARNs) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
--
-- CreateProtectionGroup,
-- createProtectionGroup_resourceType - The resource type to
-- include in the protection group. All protected resources of this type
-- are included in the protection group. Newly protected resources of
-- this type are automatically added to the group. You must set this when
-- you set Pattern to BY_RESOURCE_TYPE and you must not
-- set it for any other Pattern setting.
--
-- $sel:tags:CreateProtectionGroup',
-- createProtectionGroup_tags - One or more tag key-value pairs
-- for the protection group.
--
-- CreateProtectionGroup,
-- createProtectionGroup_protectionGroupId - The name of the
-- protection group. You use this to identify the protection group in
-- lists and to manage the protection group, for example to update,
-- delete, or describe it.
--
-- CreateProtectionGroup, createProtectionGroup_aggregation
-- - Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- and origin resources for CloudFront distributions.
--
--
-- CreateProtectionGroup, createProtectionGroup_pattern -
-- The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource Amazon Resource Names (ARNs), or include
-- all resources of a specified resource type.
newCreateProtectionGroup :: Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> CreateProtectionGroup
-- | See: newCreateProtectionGroupResponse smart constructor.
data CreateProtectionGroupResponse
CreateProtectionGroupResponse' :: Int -> CreateProtectionGroupResponse
-- | Create a value of CreateProtectionGroupResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:CreateProtectionGroupResponse',
-- createProtectionGroupResponse_httpStatus - The response's http
-- status code.
newCreateProtectionGroupResponse :: Int -> CreateProtectionGroupResponse
-- | See: newCreateSubscription smart constructor.
data CreateSubscription
CreateSubscription' :: CreateSubscription
-- | Create a value of CreateSubscription with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newCreateSubscription :: CreateSubscription
-- | See: newCreateSubscriptionResponse smart constructor.
data CreateSubscriptionResponse
CreateSubscriptionResponse' :: Int -> CreateSubscriptionResponse
-- | Create a value of CreateSubscriptionResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:CreateSubscriptionResponse',
-- createSubscriptionResponse_httpStatus - The response's http
-- status code.
newCreateSubscriptionResponse :: Int -> CreateSubscriptionResponse
-- | See: newDeleteProtection smart constructor.
data DeleteProtection
DeleteProtection' :: Text -> DeleteProtection
-- | Create a value of DeleteProtection with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionId:DeleteProtection',
-- deleteProtection_protectionId - The unique identifier (ID) for
-- the Protection object to be deleted.
newDeleteProtection :: Text -> DeleteProtection
-- | See: newDeleteProtectionResponse smart constructor.
data DeleteProtectionResponse
DeleteProtectionResponse' :: Int -> DeleteProtectionResponse
-- | Create a value of DeleteProtectionResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DeleteProtectionResponse',
-- deleteProtectionResponse_httpStatus - The response's http
-- status code.
newDeleteProtectionResponse :: Int -> DeleteProtectionResponse
-- | See: newDeleteProtectionGroup smart constructor.
data DeleteProtectionGroup
DeleteProtectionGroup' :: Text -> DeleteProtectionGroup
-- | Create a value of DeleteProtectionGroup with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- DeleteProtectionGroup,
-- deleteProtectionGroup_protectionGroupId - The name of the
-- protection group. You use this to identify the protection group in
-- lists and to manage the protection group, for example to update,
-- delete, or describe it.
newDeleteProtectionGroup :: Text -> DeleteProtectionGroup
-- | See: newDeleteProtectionGroupResponse smart constructor.
data DeleteProtectionGroupResponse
DeleteProtectionGroupResponse' :: Int -> DeleteProtectionGroupResponse
-- | Create a value of DeleteProtectionGroupResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DeleteProtectionGroupResponse',
-- deleteProtectionGroupResponse_httpStatus - The response's http
-- status code.
newDeleteProtectionGroupResponse :: Int -> DeleteProtectionGroupResponse
-- | See: newDescribeAttack smart constructor.
data DescribeAttack
DescribeAttack' :: Text -> DescribeAttack
-- | Create a value of DescribeAttack with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- DescribeAttack, describeAttack_attackId - The unique
-- identifier (ID) for the attack.
newDescribeAttack :: Text -> DescribeAttack
-- | See: newDescribeAttackResponse smart constructor.
data DescribeAttackResponse
DescribeAttackResponse' :: Maybe AttackDetail -> Int -> DescribeAttackResponse
-- | Create a value of DescribeAttackResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attack:DescribeAttackResponse',
-- describeAttackResponse_attack - The attack that you requested.
--
-- $sel:httpStatus:DescribeAttackResponse',
-- describeAttackResponse_httpStatus - The response's http status
-- code.
newDescribeAttackResponse :: Int -> DescribeAttackResponse
-- | See: newDescribeAttackStatistics smart constructor.
data DescribeAttackStatistics
DescribeAttackStatistics' :: DescribeAttackStatistics
-- | Create a value of DescribeAttackStatistics with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDescribeAttackStatistics :: DescribeAttackStatistics
-- | See: newDescribeAttackStatisticsResponse smart
-- constructor.
data DescribeAttackStatisticsResponse
DescribeAttackStatisticsResponse' :: Int -> TimeRange -> [AttackStatisticsDataItem] -> DescribeAttackStatisticsResponse
-- | Create a value of DescribeAttackStatisticsResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DescribeAttackStatisticsResponse',
-- describeAttackStatisticsResponse_httpStatus - The response's
-- http status code.
--
-- $sel:timeRange:DescribeAttackStatisticsResponse',
-- describeAttackStatisticsResponse_timeRange - The time range of
-- the attack.
--
-- $sel:dataItems:DescribeAttackStatisticsResponse',
-- describeAttackStatisticsResponse_dataItems - The data that
-- describes the attacks detected during the time period.
newDescribeAttackStatisticsResponse :: Int -> TimeRange -> DescribeAttackStatisticsResponse
-- | See: newDescribeDRTAccess smart constructor.
data DescribeDRTAccess
DescribeDRTAccess' :: DescribeDRTAccess
-- | Create a value of DescribeDRTAccess with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDescribeDRTAccess :: DescribeDRTAccess
-- | See: newDescribeDRTAccessResponse smart constructor.
data DescribeDRTAccessResponse
DescribeDRTAccessResponse' :: Maybe [Text] -> Maybe Text -> Int -> DescribeDRTAccessResponse
-- | Create a value of DescribeDRTAccessResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:logBucketList:DescribeDRTAccessResponse',
-- describeDRTAccessResponse_logBucketList - The list of Amazon S3
-- buckets accessed by the SRT.
--
-- $sel:roleArn:DescribeDRTAccessResponse',
-- describeDRTAccessResponse_roleArn - The Amazon Resource Name
-- (ARN) of the role the SRT used to access your Amazon Web Services
-- account.
--
-- $sel:httpStatus:DescribeDRTAccessResponse',
-- describeDRTAccessResponse_httpStatus - The response's http
-- status code.
newDescribeDRTAccessResponse :: Int -> DescribeDRTAccessResponse
-- | See: newDescribeEmergencyContactSettings smart
-- constructor.
data DescribeEmergencyContactSettings
DescribeEmergencyContactSettings' :: DescribeEmergencyContactSettings
-- | Create a value of DescribeEmergencyContactSettings with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDescribeEmergencyContactSettings :: DescribeEmergencyContactSettings
-- | See: newDescribeEmergencyContactSettingsResponse smart
-- constructor.
data DescribeEmergencyContactSettingsResponse
DescribeEmergencyContactSettingsResponse' :: Maybe [EmergencyContact] -> Int -> DescribeEmergencyContactSettingsResponse
-- | Create a value of DescribeEmergencyContactSettingsResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
--
-- $sel:emergencyContactList:DescribeEmergencyContactSettingsResponse',
-- describeEmergencyContactSettingsResponse_emergencyContactList -
-- A list of email addresses and phone numbers that the Shield Response
-- Team (SRT) can use to contact you if you have proactive engagement
-- enabled, for escalations to the SRT and to initiate proactive customer
-- support.
--
-- $sel:httpStatus:DescribeEmergencyContactSettingsResponse',
-- describeEmergencyContactSettingsResponse_httpStatus - The
-- response's http status code.
newDescribeEmergencyContactSettingsResponse :: Int -> DescribeEmergencyContactSettingsResponse
-- | See: newDescribeProtection smart constructor.
data DescribeProtection
DescribeProtection' :: Maybe Text -> Maybe Text -> DescribeProtection
-- | Create a value of DescribeProtection with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionId:DescribeProtection',
-- describeProtection_protectionId - The unique identifier (ID)
-- for the Protection object to describe. You must provide either the
-- ResourceArn of the protected resource or the
-- ProtectionID of the protection, but not both.
--
-- DescribeProtection, describeProtection_resourceArn - The
-- ARN (Amazon Resource Name) of the protected Amazon Web Services
-- resource. You must provide either the ResourceArn of the
-- protected resource or the ProtectionID of the protection, but
-- not both.
newDescribeProtection :: DescribeProtection
-- | See: newDescribeProtectionResponse smart constructor.
data DescribeProtectionResponse
DescribeProtectionResponse' :: Maybe Protection -> Int -> DescribeProtectionResponse
-- | Create a value of DescribeProtectionResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protection:DescribeProtectionResponse',
-- describeProtectionResponse_protection - The Protection that you
-- requested.
--
-- $sel:httpStatus:DescribeProtectionResponse',
-- describeProtectionResponse_httpStatus - The response's http
-- status code.
newDescribeProtectionResponse :: Int -> DescribeProtectionResponse
-- | See: newDescribeProtectionGroup smart constructor.
data DescribeProtectionGroup
DescribeProtectionGroup' :: Text -> DescribeProtectionGroup
-- | Create a value of DescribeProtectionGroup with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- DescribeProtectionGroup,
-- describeProtectionGroup_protectionGroupId - The name of the
-- protection group. You use this to identify the protection group in
-- lists and to manage the protection group, for example to update,
-- delete, or describe it.
newDescribeProtectionGroup :: Text -> DescribeProtectionGroup
-- | See: newDescribeProtectionGroupResponse smart
-- constructor.
data DescribeProtectionGroupResponse
DescribeProtectionGroupResponse' :: Int -> ProtectionGroup -> DescribeProtectionGroupResponse
-- | Create a value of DescribeProtectionGroupResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DescribeProtectionGroupResponse',
-- describeProtectionGroupResponse_httpStatus - The response's
-- http status code.
--
-- $sel:protectionGroup:DescribeProtectionGroupResponse',
-- describeProtectionGroupResponse_protectionGroup - A grouping of
-- protected resources that you and Shield Advanced can monitor as a
-- collective. This resource grouping improves the accuracy of detection
-- and reduces false positives.
newDescribeProtectionGroupResponse :: Int -> ProtectionGroup -> DescribeProtectionGroupResponse
-- | See: newDescribeSubscription smart constructor.
data DescribeSubscription
DescribeSubscription' :: DescribeSubscription
-- | Create a value of DescribeSubscription with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDescribeSubscription :: DescribeSubscription
-- | See: newDescribeSubscriptionResponse smart constructor.
data DescribeSubscriptionResponse
DescribeSubscriptionResponse' :: Maybe Subscription -> Int -> DescribeSubscriptionResponse
-- | Create a value of DescribeSubscriptionResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:subscription:DescribeSubscriptionResponse',
-- describeSubscriptionResponse_subscription - The Shield Advanced
-- subscription details for an account.
--
-- $sel:httpStatus:DescribeSubscriptionResponse',
-- describeSubscriptionResponse_httpStatus - The response's http
-- status code.
newDescribeSubscriptionResponse :: Int -> DescribeSubscriptionResponse
-- | See: newDisableApplicationLayerAutomaticResponse smart
-- constructor.
data DisableApplicationLayerAutomaticResponse
DisableApplicationLayerAutomaticResponse' :: Text -> DisableApplicationLayerAutomaticResponse
-- | Create a value of DisableApplicationLayerAutomaticResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- DisableApplicationLayerAutomaticResponse,
-- disableApplicationLayerAutomaticResponse_resourceArn - The ARN
-- (Amazon Resource Name) of the protected resource.
newDisableApplicationLayerAutomaticResponse :: Text -> DisableApplicationLayerAutomaticResponse
-- | See: newDisableApplicationLayerAutomaticResponseResponse
-- smart constructor.
data DisableApplicationLayerAutomaticResponseResponse
DisableApplicationLayerAutomaticResponseResponse' :: Int -> DisableApplicationLayerAutomaticResponseResponse
-- | Create a value of
-- DisableApplicationLayerAutomaticResponseResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
--
-- $sel:httpStatus:DisableApplicationLayerAutomaticResponseResponse',
-- disableApplicationLayerAutomaticResponseResponse_httpStatus -
-- The response's http status code.
newDisableApplicationLayerAutomaticResponseResponse :: Int -> DisableApplicationLayerAutomaticResponseResponse
-- | See: newDisableProactiveEngagement smart constructor.
data DisableProactiveEngagement
DisableProactiveEngagement' :: DisableProactiveEngagement
-- | Create a value of DisableProactiveEngagement with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDisableProactiveEngagement :: DisableProactiveEngagement
-- | See: newDisableProactiveEngagementResponse smart
-- constructor.
data DisableProactiveEngagementResponse
DisableProactiveEngagementResponse' :: Int -> DisableProactiveEngagementResponse
-- | Create a value of DisableProactiveEngagementResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DisableProactiveEngagementResponse',
-- disableProactiveEngagementResponse_httpStatus - The response's
-- http status code.
newDisableProactiveEngagementResponse :: Int -> DisableProactiveEngagementResponse
-- | See: newDisassociateDRTLogBucket smart constructor.
data DisassociateDRTLogBucket
DisassociateDRTLogBucket' :: Text -> DisassociateDRTLogBucket
-- | Create a value of DisassociateDRTLogBucket with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:logBucket:DisassociateDRTLogBucket',
-- disassociateDRTLogBucket_logBucket - The Amazon S3 bucket that
-- contains the logs that you want to share.
newDisassociateDRTLogBucket :: Text -> DisassociateDRTLogBucket
-- | See: newDisassociateDRTLogBucketResponse smart
-- constructor.
data DisassociateDRTLogBucketResponse
DisassociateDRTLogBucketResponse' :: Int -> DisassociateDRTLogBucketResponse
-- | Create a value of DisassociateDRTLogBucketResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DisassociateDRTLogBucketResponse',
-- disassociateDRTLogBucketResponse_httpStatus - The response's
-- http status code.
newDisassociateDRTLogBucketResponse :: Int -> DisassociateDRTLogBucketResponse
-- | See: newDisassociateDRTRole smart constructor.
data DisassociateDRTRole
DisassociateDRTRole' :: DisassociateDRTRole
-- | Create a value of DisassociateDRTRole with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newDisassociateDRTRole :: DisassociateDRTRole
-- | See: newDisassociateDRTRoleResponse smart constructor.
data DisassociateDRTRoleResponse
DisassociateDRTRoleResponse' :: Int -> DisassociateDRTRoleResponse
-- | Create a value of DisassociateDRTRoleResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DisassociateDRTRoleResponse',
-- disassociateDRTRoleResponse_httpStatus - The response's http
-- status code.
newDisassociateDRTRoleResponse :: Int -> DisassociateDRTRoleResponse
-- | See: newDisassociateHealthCheck smart constructor.
data DisassociateHealthCheck
DisassociateHealthCheck' :: Text -> Text -> DisassociateHealthCheck
-- | Create a value of DisassociateHealthCheck with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionId:DisassociateHealthCheck',
-- disassociateHealthCheck_protectionId - The unique identifier
-- (ID) for the Protection object to remove the health check association
-- from.
--
-- $sel:healthCheckArn:DisassociateHealthCheck',
-- disassociateHealthCheck_healthCheckArn - The Amazon Resource
-- Name (ARN) of the health check that is associated with the protection.
newDisassociateHealthCheck :: Text -> Text -> DisassociateHealthCheck
-- | See: newDisassociateHealthCheckResponse smart
-- constructor.
data DisassociateHealthCheckResponse
DisassociateHealthCheckResponse' :: Int -> DisassociateHealthCheckResponse
-- | Create a value of DisassociateHealthCheckResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:DisassociateHealthCheckResponse',
-- disassociateHealthCheckResponse_httpStatus - The response's
-- http status code.
newDisassociateHealthCheckResponse :: Int -> DisassociateHealthCheckResponse
-- | See: newEnableApplicationLayerAutomaticResponse smart
-- constructor.
data EnableApplicationLayerAutomaticResponse
EnableApplicationLayerAutomaticResponse' :: Text -> ResponseAction -> EnableApplicationLayerAutomaticResponse
-- | Create a value of EnableApplicationLayerAutomaticResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- EnableApplicationLayerAutomaticResponse,
-- enableApplicationLayerAutomaticResponse_resourceArn - The ARN
-- (Amazon Resource Name) of the protected resource.
--
-- EnableApplicationLayerAutomaticResponse,
-- enableApplicationLayerAutomaticResponse_action - Specifies the
-- action setting that Shield Advanced should use in the WAF rules that
-- it creates on behalf of the protected resource in response to DDoS
-- attacks. You specify this as part of the configuration for the
-- automatic application layer DDoS mitigation feature, when you enable
-- or update automatic mitigation. Shield Advanced creates the WAF rules
-- in a Shield Advanced-managed rule group, inside the web ACL that you
-- have associated with the resource.
newEnableApplicationLayerAutomaticResponse :: Text -> ResponseAction -> EnableApplicationLayerAutomaticResponse
-- | See: newEnableApplicationLayerAutomaticResponseResponse
-- smart constructor.
data EnableApplicationLayerAutomaticResponseResponse
EnableApplicationLayerAutomaticResponseResponse' :: Int -> EnableApplicationLayerAutomaticResponseResponse
-- | Create a value of
-- EnableApplicationLayerAutomaticResponseResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
--
-- $sel:httpStatus:EnableApplicationLayerAutomaticResponseResponse',
-- enableApplicationLayerAutomaticResponseResponse_httpStatus -
-- The response's http status code.
newEnableApplicationLayerAutomaticResponseResponse :: Int -> EnableApplicationLayerAutomaticResponseResponse
-- | See: newEnableProactiveEngagement smart constructor.
data EnableProactiveEngagement
EnableProactiveEngagement' :: EnableProactiveEngagement
-- | Create a value of EnableProactiveEngagement with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newEnableProactiveEngagement :: EnableProactiveEngagement
-- | See: newEnableProactiveEngagementResponse smart
-- constructor.
data EnableProactiveEngagementResponse
EnableProactiveEngagementResponse' :: Int -> EnableProactiveEngagementResponse
-- | Create a value of EnableProactiveEngagementResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:EnableProactiveEngagementResponse',
-- enableProactiveEngagementResponse_httpStatus - The response's
-- http status code.
newEnableProactiveEngagementResponse :: Int -> EnableProactiveEngagementResponse
-- | See: newGetSubscriptionState smart constructor.
data GetSubscriptionState
GetSubscriptionState' :: GetSubscriptionState
-- | Create a value of GetSubscriptionState with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newGetSubscriptionState :: GetSubscriptionState
-- | See: newGetSubscriptionStateResponse smart constructor.
data GetSubscriptionStateResponse
GetSubscriptionStateResponse' :: Int -> SubscriptionState -> GetSubscriptionStateResponse
-- | Create a value of GetSubscriptionStateResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:GetSubscriptionStateResponse',
-- getSubscriptionStateResponse_httpStatus - The response's http
-- status code.
--
-- $sel:subscriptionState:GetSubscriptionStateResponse',
-- getSubscriptionStateResponse_subscriptionState - The status of
-- the subscription.
newGetSubscriptionStateResponse :: Int -> SubscriptionState -> GetSubscriptionStateResponse
-- | See: newListAttacks smart constructor.
data ListAttacks
ListAttacks' :: Maybe TimeRange -> Maybe Natural -> Maybe Text -> Maybe [Text] -> Maybe TimeRange -> ListAttacks
-- | Create a value of ListAttacks with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- ListAttacks, listAttacks_endTime - The end of the time
-- period for the attacks. This is a timestamp type. The request
-- syntax listing for this call indicates a number type, but you
-- can provide the time in any valid timestamp format setting.
--
-- $sel:maxResults:ListAttacks', listAttacks_maxResults -
-- The greatest number of objects that you want Shield Advanced to return
-- to the list request. Shield Advanced might return fewer objects than
-- you indicate in this setting, even if more objects are available. If
-- there are more objects remaining, Shield Advanced will always also
-- return a NextToken value in the response.
--
-- The default setting is 20.
--
-- ListAttacks, listAttacks_nextToken - When you request a
-- list of objects from Shield Advanced, if the response does not include
-- all of the remaining available objects, Shield Advanced includes a
-- NextToken value in the response. You can retrieve the next
-- batch of objects by requesting the list again and providing the token
-- that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
--
-- ListAttacks, listAttacks_resourceArns - The ARNs (Amazon
-- Resource Names) of the resources that were attacked. If you leave this
-- blank, all applicable resources for this account will be included.
--
-- ListAttacks, listAttacks_startTime - The start of the
-- time period for the attacks. This is a timestamp type. The
-- request syntax listing for this call indicates a number type,
-- but you can provide the time in any valid timestamp format
-- setting.
newListAttacks :: ListAttacks
-- | See: newListAttacksResponse smart constructor.
data ListAttacksResponse
ListAttacksResponse' :: Maybe [AttackSummary] -> Maybe Text -> Int -> ListAttacksResponse
-- | Create a value of ListAttacksResponse with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackSummaries:ListAttacksResponse',
-- listAttacksResponse_attackSummaries - The attack information
-- for the specified time range.
--
-- ListAttacks, listAttacksResponse_nextToken - When you
-- request a list of objects from Shield Advanced, if the response does
-- not include all of the remaining available objects, Shield Advanced
-- includes a NextToken value in the response. You can retrieve
-- the next batch of objects by requesting the list again and providing
-- the token that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- $sel:httpStatus:ListAttacksResponse',
-- listAttacksResponse_httpStatus - The response's http status
-- code.
newListAttacksResponse :: Int -> ListAttacksResponse
-- | See: newListProtectionGroups smart constructor.
data ListProtectionGroups
ListProtectionGroups' :: Maybe InclusionProtectionGroupFilters -> Maybe Natural -> Maybe Text -> ListProtectionGroups
-- | Create a value of ListProtectionGroups with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:inclusionFilters:ListProtectionGroups',
-- listProtectionGroups_inclusionFilters - Narrows the set of
-- protection groups that the call retrieves. You can retrieve a single
-- protection group by its name and you can retrieve all protection
-- groups that are configured with specific pattern or aggregation
-- settings. You can provide up to one criteria per filter type. Shield
-- Advanced returns the protection groups that exactly match all of the
-- search criteria that you provide.
--
-- $sel:maxResults:ListProtectionGroups',
-- listProtectionGroups_maxResults - The greatest number of
-- objects that you want Shield Advanced to return to the list request.
-- Shield Advanced might return fewer objects than you indicate in this
-- setting, even if more objects are available. If there are more objects
-- remaining, Shield Advanced will always also return a
-- NextToken value in the response.
--
-- The default setting is 20.
--
-- ListProtectionGroups, listProtectionGroups_nextToken -
-- When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
newListProtectionGroups :: ListProtectionGroups
-- | See: newListProtectionGroupsResponse smart constructor.
data ListProtectionGroupsResponse
ListProtectionGroupsResponse' :: Maybe Text -> Int -> [ProtectionGroup] -> ListProtectionGroupsResponse
-- | Create a value of ListProtectionGroupsResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- ListProtectionGroups,
-- listProtectionGroupsResponse_nextToken - When you request a
-- list of objects from Shield Advanced, if the response does not include
-- all of the remaining available objects, Shield Advanced includes a
-- NextToken value in the response. You can retrieve the next
-- batch of objects by requesting the list again and providing the token
-- that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- $sel:httpStatus:ListProtectionGroupsResponse',
-- listProtectionGroupsResponse_httpStatus - The response's http
-- status code.
--
-- $sel:protectionGroups:ListProtectionGroupsResponse',
-- listProtectionGroupsResponse_protectionGroups -
newListProtectionGroupsResponse :: Int -> ListProtectionGroupsResponse
-- | See: newListProtections smart constructor.
data ListProtections
ListProtections' :: Maybe InclusionProtectionFilters -> Maybe Natural -> Maybe Text -> ListProtections
-- | Create a value of ListProtections with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:inclusionFilters:ListProtections',
-- listProtections_inclusionFilters - Narrows the set of
-- protections that the call retrieves. You can retrieve a single
-- protection by providing its name or the ARN (Amazon Resource Name) of
-- its protected resource. You can also retrieve all protections for a
-- specific resource type. You can provide up to one criteria per filter
-- type. Shield Advanced returns protections that exactly match all of
-- the filter criteria that you provide.
--
-- $sel:maxResults:ListProtections',
-- listProtections_maxResults - The greatest number of objects
-- that you want Shield Advanced to return to the list request. Shield
-- Advanced might return fewer objects than you indicate in this setting,
-- even if more objects are available. If there are more objects
-- remaining, Shield Advanced will always also return a
-- NextToken value in the response.
--
-- The default setting is 20.
--
-- ListProtections, listProtections_nextToken - When you
-- request a list of objects from Shield Advanced, if the response does
-- not include all of the remaining available objects, Shield Advanced
-- includes a NextToken value in the response. You can retrieve
-- the next batch of objects by requesting the list again and providing
-- the token that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
newListProtections :: ListProtections
-- | See: newListProtectionsResponse smart constructor.
data ListProtectionsResponse
ListProtectionsResponse' :: Maybe Text -> Maybe [Protection] -> Int -> ListProtectionsResponse
-- | Create a value of ListProtectionsResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- ListProtections, listProtectionsResponse_nextToken -
-- When you request a list of objects from Shield Advanced, if the
-- response does not include all of the remaining available objects,
-- Shield Advanced includes a NextToken value in the response.
-- You can retrieve the next batch of objects by requesting the list
-- again and providing the token that was returned by the prior call in
-- your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- $sel:protections:ListProtectionsResponse',
-- listProtectionsResponse_protections - The array of enabled
-- Protection objects.
--
-- $sel:httpStatus:ListProtectionsResponse',
-- listProtectionsResponse_httpStatus - The response's http status
-- code.
newListProtectionsResponse :: Int -> ListProtectionsResponse
-- | See: newListResourcesInProtectionGroup smart
-- constructor.
data ListResourcesInProtectionGroup
ListResourcesInProtectionGroup' :: Maybe Natural -> Maybe Text -> Text -> ListResourcesInProtectionGroup
-- | Create a value of ListResourcesInProtectionGroup with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:maxResults:ListResourcesInProtectionGroup',
-- listResourcesInProtectionGroup_maxResults - The greatest number
-- of objects that you want Shield Advanced to return to the list
-- request. Shield Advanced might return fewer objects than you indicate
-- in this setting, even if more objects are available. If there are more
-- objects remaining, Shield Advanced will always also return a
-- NextToken value in the response.
--
-- The default setting is 20.
--
-- ListResourcesInProtectionGroup,
-- listResourcesInProtectionGroup_nextToken - When you request a
-- list of objects from Shield Advanced, if the response does not include
-- all of the remaining available objects, Shield Advanced includes a
-- NextToken value in the response. You can retrieve the next
-- batch of objects by requesting the list again and providing the token
-- that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- On your first call to a list operation, leave this setting empty.
--
-- ListResourcesInProtectionGroup,
-- listResourcesInProtectionGroup_protectionGroupId - The name of
-- the protection group. You use this to identify the protection group in
-- lists and to manage the protection group, for example to update,
-- delete, or describe it.
newListResourcesInProtectionGroup :: Text -> ListResourcesInProtectionGroup
-- | See: newListResourcesInProtectionGroupResponse smart
-- constructor.
data ListResourcesInProtectionGroupResponse
ListResourcesInProtectionGroupResponse' :: Maybe Text -> Int -> [Text] -> ListResourcesInProtectionGroupResponse
-- | Create a value of ListResourcesInProtectionGroupResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- ListResourcesInProtectionGroup,
-- listResourcesInProtectionGroupResponse_nextToken - When you
-- request a list of objects from Shield Advanced, if the response does
-- not include all of the remaining available objects, Shield Advanced
-- includes a NextToken value in the response. You can retrieve
-- the next batch of objects by requesting the list again and providing
-- the token that was returned by the prior call in your request.
--
-- You can indicate the maximum number of objects that you want Shield
-- Advanced to return for a single call with the MaxResults
-- setting. Shield Advanced will not return more than MaxResults
-- objects, but may return fewer, even if more objects are still
-- available.
--
-- Whenever more objects remain that Shield Advanced has not yet returned
-- to you, the response will include a NextToken value.
--
-- $sel:httpStatus:ListResourcesInProtectionGroupResponse',
-- listResourcesInProtectionGroupResponse_httpStatus - The
-- response's http status code.
--
-- ListResourcesInProtectionGroupResponse,
-- listResourcesInProtectionGroupResponse_resourceArns - The
-- Amazon Resource Names (ARNs) of the resources that are included in the
-- protection group.
newListResourcesInProtectionGroupResponse :: Int -> ListResourcesInProtectionGroupResponse
-- | See: newListTagsForResource smart constructor.
data ListTagsForResource
ListTagsForResource' :: Text -> ListTagsForResource
-- | Create a value of ListTagsForResource with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:resourceARN:ListTagsForResource',
-- listTagsForResource_resourceARN - The Amazon Resource Name
-- (ARN) of the resource to get tags for.
newListTagsForResource :: Text -> ListTagsForResource
-- | See: newListTagsForResourceResponse smart constructor.
data ListTagsForResourceResponse
ListTagsForResourceResponse' :: Maybe [Tag] -> Int -> ListTagsForResourceResponse
-- | Create a value of ListTagsForResourceResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:tags:ListTagsForResourceResponse',
-- listTagsForResourceResponse_tags - A list of tag key and value
-- pairs associated with the specified resource.
--
-- $sel:httpStatus:ListTagsForResourceResponse',
-- listTagsForResourceResponse_httpStatus - The response's http
-- status code.
newListTagsForResourceResponse :: Int -> ListTagsForResourceResponse
-- | See: newTagResource smart constructor.
data TagResource
TagResource' :: Text -> [Tag] -> TagResource
-- | Create a value of TagResource with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:resourceARN:TagResource', tagResource_resourceARN -
-- The Amazon Resource Name (ARN) of the resource that you want to add or
-- update tags for.
--
-- $sel:tags:TagResource', tagResource_tags - The tags that
-- you want to modify or add to the resource.
newTagResource :: Text -> TagResource
-- | See: newTagResourceResponse smart constructor.
data TagResourceResponse
TagResourceResponse' :: Int -> TagResourceResponse
-- | Create a value of TagResourceResponse with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:TagResourceResponse',
-- tagResourceResponse_httpStatus - The response's http status
-- code.
newTagResourceResponse :: Int -> TagResourceResponse
-- | See: newUntagResource smart constructor.
data UntagResource
UntagResource' :: Text -> [Text] -> UntagResource
-- | Create a value of UntagResource with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:resourceARN:UntagResource',
-- untagResource_resourceARN - The Amazon Resource Name (ARN) of
-- the resource that you want to remove tags from.
--
-- $sel:tagKeys:UntagResource', untagResource_tagKeys - The
-- tag key for each tag that you want to remove from the resource.
newUntagResource :: Text -> UntagResource
-- | See: newUntagResourceResponse smart constructor.
data UntagResourceResponse
UntagResourceResponse' :: Int -> UntagResourceResponse
-- | Create a value of UntagResourceResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:UntagResourceResponse',
-- untagResourceResponse_httpStatus - The response's http status
-- code.
newUntagResourceResponse :: Int -> UntagResourceResponse
-- | See: newUpdateApplicationLayerAutomaticResponse smart
-- constructor.
data UpdateApplicationLayerAutomaticResponse
UpdateApplicationLayerAutomaticResponse' :: Text -> ResponseAction -> UpdateApplicationLayerAutomaticResponse
-- | Create a value of UpdateApplicationLayerAutomaticResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- UpdateApplicationLayerAutomaticResponse,
-- updateApplicationLayerAutomaticResponse_resourceArn - The ARN
-- (Amazon Resource Name) of the resource.
--
-- UpdateApplicationLayerAutomaticResponse,
-- updateApplicationLayerAutomaticResponse_action - Specifies the
-- action setting that Shield Advanced should use in the WAF rules that
-- it creates on behalf of the protected resource in response to DDoS
-- attacks. You specify this as part of the configuration for the
-- automatic application layer DDoS mitigation feature, when you enable
-- or update automatic mitigation. Shield Advanced creates the WAF rules
-- in a Shield Advanced-managed rule group, inside the web ACL that you
-- have associated with the resource.
newUpdateApplicationLayerAutomaticResponse :: Text -> ResponseAction -> UpdateApplicationLayerAutomaticResponse
-- | See: newUpdateApplicationLayerAutomaticResponseResponse
-- smart constructor.
data UpdateApplicationLayerAutomaticResponseResponse
UpdateApplicationLayerAutomaticResponseResponse' :: Int -> UpdateApplicationLayerAutomaticResponseResponse
-- | Create a value of
-- UpdateApplicationLayerAutomaticResponseResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
--
-- $sel:httpStatus:UpdateApplicationLayerAutomaticResponseResponse',
-- updateApplicationLayerAutomaticResponseResponse_httpStatus -
-- The response's http status code.
newUpdateApplicationLayerAutomaticResponseResponse :: Int -> UpdateApplicationLayerAutomaticResponseResponse
-- | See: newUpdateEmergencyContactSettings smart
-- constructor.
data UpdateEmergencyContactSettings
UpdateEmergencyContactSettings' :: Maybe [EmergencyContact] -> UpdateEmergencyContactSettings
-- | Create a value of UpdateEmergencyContactSettings with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:emergencyContactList:UpdateEmergencyContactSettings',
-- updateEmergencyContactSettings_emergencyContactList - A list of
-- email addresses and phone numbers that the Shield Response Team (SRT)
-- can use to contact you if you have proactive engagement enabled, for
-- escalations to the SRT and to initiate proactive customer support.
--
-- If you have proactive engagement enabled, the contact list must
-- include at least one phone number.
newUpdateEmergencyContactSettings :: UpdateEmergencyContactSettings
-- | See: newUpdateEmergencyContactSettingsResponse smart
-- constructor.
data UpdateEmergencyContactSettingsResponse
UpdateEmergencyContactSettingsResponse' :: Int -> UpdateEmergencyContactSettingsResponse
-- | Create a value of UpdateEmergencyContactSettingsResponse with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:UpdateEmergencyContactSettingsResponse',
-- updateEmergencyContactSettingsResponse_httpStatus - The
-- response's http status code.
newUpdateEmergencyContactSettingsResponse :: Int -> UpdateEmergencyContactSettingsResponse
-- | See: newUpdateProtectionGroup smart constructor.
data UpdateProtectionGroup
UpdateProtectionGroup' :: Maybe [Text] -> Maybe ProtectedResourceType -> Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> UpdateProtectionGroup
-- | Create a value of UpdateProtectionGroup with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- UpdateProtectionGroup, updateProtectionGroup_members -
-- The Amazon Resource Names (ARNs) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
--
-- UpdateProtectionGroup,
-- updateProtectionGroup_resourceType - The resource type to
-- include in the protection group. All protected resources of this type
-- are included in the protection group. You must set this when you set
-- Pattern to BY_RESOURCE_TYPE and you must not set it
-- for any other Pattern setting.
--
-- UpdateProtectionGroup,
-- updateProtectionGroup_protectionGroupId - The name of the
-- protection group. You use this to identify the protection group in
-- lists and to manage the protection group, for example to update,
-- delete, or describe it.
--
-- UpdateProtectionGroup, updateProtectionGroup_aggregation
-- - Defines how Shield combines resource data for the group in order to
-- detect, mitigate, and report events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
--
-- UpdateProtectionGroup, updateProtectionGroup_pattern -
-- The criteria to use to choose the protected resources for inclusion in
-- the group. You can include all resources that have protections,
-- provide a list of resource Amazon Resource Names (ARNs), or include
-- all resources of a specified resource type.
newUpdateProtectionGroup :: Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> UpdateProtectionGroup
-- | See: newUpdateProtectionGroupResponse smart constructor.
data UpdateProtectionGroupResponse
UpdateProtectionGroupResponse' :: Int -> UpdateProtectionGroupResponse
-- | Create a value of UpdateProtectionGroupResponse with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:UpdateProtectionGroupResponse',
-- updateProtectionGroupResponse_httpStatus - The response's http
-- status code.
newUpdateProtectionGroupResponse :: Int -> UpdateProtectionGroupResponse
-- | See: newUpdateSubscription smart constructor.
data UpdateSubscription
UpdateSubscription' :: Maybe AutoRenew -> UpdateSubscription
-- | Create a value of UpdateSubscription with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- UpdateSubscription, updateSubscription_autoRenew - When
-- you initally create a subscription, AutoRenew is set to
-- ENABLED. If ENABLED, the subscription will be
-- automatically renewed at the end of the existing subscription period.
-- You can change this by submitting an UpdateSubscription
-- request. If the UpdateSubscription request does not included
-- a value for AutoRenew, the existing value for
-- AutoRenew remains unchanged.
newUpdateSubscription :: UpdateSubscription
-- | See: newUpdateSubscriptionResponse smart constructor.
data UpdateSubscriptionResponse
UpdateSubscriptionResponse' :: Int -> UpdateSubscriptionResponse
-- | Create a value of UpdateSubscriptionResponse with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:httpStatus:UpdateSubscriptionResponse',
-- updateSubscriptionResponse_httpStatus - The response's http
-- status code.
newUpdateSubscriptionResponse :: Int -> UpdateSubscriptionResponse
newtype ApplicationLayerAutomaticResponseStatus
ApplicationLayerAutomaticResponseStatus' :: Text -> ApplicationLayerAutomaticResponseStatus
[fromApplicationLayerAutomaticResponseStatus] :: ApplicationLayerAutomaticResponseStatus -> Text
pattern ApplicationLayerAutomaticResponseStatus_DISABLED :: ApplicationLayerAutomaticResponseStatus
pattern ApplicationLayerAutomaticResponseStatus_ENABLED :: ApplicationLayerAutomaticResponseStatus
newtype AttackLayer
AttackLayer' :: Text -> AttackLayer
[fromAttackLayer] :: AttackLayer -> Text
pattern AttackLayer_APPLICATION :: AttackLayer
pattern AttackLayer_NETWORK :: AttackLayer
newtype AttackPropertyIdentifier
AttackPropertyIdentifier' :: Text -> AttackPropertyIdentifier
[fromAttackPropertyIdentifier] :: AttackPropertyIdentifier -> Text
pattern AttackPropertyIdentifier_DESTINATION_URL :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_REFERRER :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_ASN :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_COUNTRY :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_IP_ADDRESS :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_SOURCE_USER_AGENT :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_WORDPRESS_PINGBACK_REFLECTOR :: AttackPropertyIdentifier
pattern AttackPropertyIdentifier_WORDPRESS_PINGBACK_SOURCE :: AttackPropertyIdentifier
newtype AutoRenew
AutoRenew' :: Text -> AutoRenew
[fromAutoRenew] :: AutoRenew -> Text
pattern AutoRenew_DISABLED :: AutoRenew
pattern AutoRenew_ENABLED :: AutoRenew
newtype ProactiveEngagementStatus
ProactiveEngagementStatus' :: Text -> ProactiveEngagementStatus
[fromProactiveEngagementStatus] :: ProactiveEngagementStatus -> Text
pattern ProactiveEngagementStatus_DISABLED :: ProactiveEngagementStatus
pattern ProactiveEngagementStatus_ENABLED :: ProactiveEngagementStatus
pattern ProactiveEngagementStatus_PENDING :: ProactiveEngagementStatus
newtype ProtectedResourceType
ProtectedResourceType' :: Text -> ProtectedResourceType
[fromProtectedResourceType] :: ProtectedResourceType -> Text
pattern ProtectedResourceType_APPLICATION_LOAD_BALANCER :: ProtectedResourceType
pattern ProtectedResourceType_CLASSIC_LOAD_BALANCER :: ProtectedResourceType
pattern ProtectedResourceType_CLOUDFRONT_DISTRIBUTION :: ProtectedResourceType
pattern ProtectedResourceType_ELASTIC_IP_ALLOCATION :: ProtectedResourceType
pattern ProtectedResourceType_GLOBAL_ACCELERATOR :: ProtectedResourceType
pattern ProtectedResourceType_ROUTE_53_HOSTED_ZONE :: ProtectedResourceType
newtype ProtectionGroupAggregation
ProtectionGroupAggregation' :: Text -> ProtectionGroupAggregation
[fromProtectionGroupAggregation] :: ProtectionGroupAggregation -> Text
pattern ProtectionGroupAggregation_MAX :: ProtectionGroupAggregation
pattern ProtectionGroupAggregation_MEAN :: ProtectionGroupAggregation
pattern ProtectionGroupAggregation_SUM :: ProtectionGroupAggregation
newtype ProtectionGroupPattern
ProtectionGroupPattern' :: Text -> ProtectionGroupPattern
[fromProtectionGroupPattern] :: ProtectionGroupPattern -> Text
pattern ProtectionGroupPattern_ALL :: ProtectionGroupPattern
pattern ProtectionGroupPattern_ARBITRARY :: ProtectionGroupPattern
pattern ProtectionGroupPattern_BY_RESOURCE_TYPE :: ProtectionGroupPattern
newtype SubResourceType
SubResourceType' :: Text -> SubResourceType
[fromSubResourceType] :: SubResourceType -> Text
pattern SubResourceType_IP :: SubResourceType
pattern SubResourceType_URL :: SubResourceType
newtype SubscriptionState
SubscriptionState' :: Text -> SubscriptionState
[fromSubscriptionState] :: SubscriptionState -> Text
pattern SubscriptionState_ACTIVE :: SubscriptionState
pattern SubscriptionState_INACTIVE :: SubscriptionState
newtype Unit
Unit' :: Text -> Unit
[fromUnit] :: Unit -> Text
pattern Unit_BITS :: Unit
pattern Unit_BYTES :: Unit
pattern Unit_PACKETS :: Unit
pattern Unit_REQUESTS :: Unit
-- | The automatic application layer DDoS mitigation settings for a
-- Protection. This configuration determines whether Shield Advanced
-- automatically manages rules in the web ACL in order to respond to
-- application layer events that Shield Advanced determines to be DDoS
-- attacks.
--
-- See: newApplicationLayerAutomaticResponseConfiguration
-- smart constructor.
data ApplicationLayerAutomaticResponseConfiguration
ApplicationLayerAutomaticResponseConfiguration' :: ApplicationLayerAutomaticResponseStatus -> ResponseAction -> ApplicationLayerAutomaticResponseConfiguration
-- | Create a value of
-- ApplicationLayerAutomaticResponseConfiguration with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:status:ApplicationLayerAutomaticResponseConfiguration',
-- applicationLayerAutomaticResponseConfiguration_status -
-- Indicates whether automatic application layer DDoS mitigation is
-- enabled for the protection.
--
-- $sel:action:ApplicationLayerAutomaticResponseConfiguration',
-- applicationLayerAutomaticResponseConfiguration_action -
-- Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
newApplicationLayerAutomaticResponseConfiguration :: ApplicationLayerAutomaticResponseStatus -> ResponseAction -> ApplicationLayerAutomaticResponseConfiguration
-- | The details of a DDoS attack.
--
-- See: newAttackDetail smart constructor.
data AttackDetail
AttackDetail' :: Maybe [SummarizedCounter] -> Maybe Text -> Maybe [AttackProperty] -> Maybe POSIX -> Maybe [Mitigation] -> Maybe Text -> Maybe POSIX -> Maybe [SubResourceSummary] -> AttackDetail
-- | Create a value of AttackDetail with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackCounters:AttackDetail',
-- attackDetail_attackCounters - List of counters that describe
-- the attack for the specified time period.
--
-- $sel:attackId:AttackDetail', attackDetail_attackId - The
-- unique identifier (ID) of the attack.
--
-- $sel:attackProperties:AttackDetail',
-- attackDetail_attackProperties - The array of objects that
-- provide details of the Shield event.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
--
-- $sel:endTime:AttackDetail', attackDetail_endTime - The
-- time the attack ended, in Unix time in seconds.
--
-- $sel:mitigations:AttackDetail', attackDetail_mitigations
-- - List of mitigation actions taken for the attack.
--
-- $sel:resourceArn:AttackDetail', attackDetail_resourceArn
-- - The ARN (Amazon Resource Name) of the resource that was attacked.
--
-- $sel:startTime:AttackDetail', attackDetail_startTime -
-- The time the attack started, in Unix time in seconds.
--
-- $sel:subResources:AttackDetail',
-- attackDetail_subResources - If applicable, additional detail
-- about the resource being attacked, for example, IP address or URL.
newAttackDetail :: AttackDetail
-- | Details of a Shield event. This is provided as part of an
-- AttackDetail.
--
-- See: newAttackProperty smart constructor.
data AttackProperty
AttackProperty' :: Maybe AttackLayer -> Maybe AttackPropertyIdentifier -> Maybe [Contributor] -> Maybe Integer -> Maybe Unit -> AttackProperty
-- | Create a value of AttackProperty with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackLayer:AttackProperty',
-- attackProperty_attackLayer - The type of Shield event that was
-- observed. NETWORK indicates layer 3 and layer 4 events and
-- APPLICATION indicates layer 7 events.
--
-- For infrastructure layer events (L3 and L4 events), you can view
-- metrics for top contributors in Amazon CloudWatch metrics. For more
-- information, see Shield metrics and alarms in the WAF
-- Developer Guide.
--
-- $sel:attackPropertyIdentifier:AttackProperty',
-- attackProperty_attackPropertyIdentifier - Defines the Shield
-- event property information that is provided. The
-- WORDPRESS_PINGBACK_REFLECTOR and
-- WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress
-- reflective pingback events.
--
-- $sel:topContributors:AttackProperty',
-- attackProperty_topContributors - Contributor objects for the
-- top five contributors to a Shield event. A contributor is a source of
-- traffic that Shield Advanced identifies as responsible for some or all
-- of an event.
--
-- $sel:total:AttackProperty', attackProperty_total - The
-- total contributions made to this Shield event by all contributors.
--
-- $sel:unit:AttackProperty', attackProperty_unit - The
-- unit used for the Contributor Value property.
newAttackProperty :: AttackProperty
-- | A single attack statistics data record. This is returned by
-- DescribeAttackStatistics along with a time range indicating the time
-- period that the attack statistics apply to.
--
-- See: newAttackStatisticsDataItem smart constructor.
data AttackStatisticsDataItem
AttackStatisticsDataItem' :: Maybe AttackVolume -> Integer -> AttackStatisticsDataItem
-- | Create a value of AttackStatisticsDataItem with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackVolume:AttackStatisticsDataItem',
-- attackStatisticsDataItem_attackVolume - Information about the
-- volume of attacks during the time period. If the accompanying
-- AttackCount is zero, this setting might be empty.
--
-- $sel:attackCount:AttackStatisticsDataItem',
-- attackStatisticsDataItem_attackCount - The number of attacks
-- detected during the time period. This is always present, but might be
-- zero.
newAttackStatisticsDataItem :: Integer -> AttackStatisticsDataItem
-- | Summarizes all DDoS attacks for a specified time period.
--
-- See: newAttackSummary smart constructor.
data AttackSummary
AttackSummary' :: Maybe Text -> Maybe [AttackVectorDescription] -> Maybe POSIX -> Maybe Text -> Maybe POSIX -> AttackSummary
-- | Create a value of AttackSummary with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackId:AttackSummary', attackSummary_attackId -
-- The unique identifier (ID) of the attack.
--
-- $sel:attackVectors:AttackSummary',
-- attackSummary_attackVectors - The list of attacks for a
-- specified time period.
--
-- $sel:endTime:AttackSummary', attackSummary_endTime - The
-- end time of the attack, in Unix time in seconds.
--
-- $sel:resourceArn:AttackSummary',
-- attackSummary_resourceArn - The ARN (Amazon Resource Name) of
-- the resource that was attacked.
--
-- $sel:startTime:AttackSummary', attackSummary_startTime -
-- The start time of the attack, in Unix time in seconds.
newAttackSummary :: AttackSummary
-- | Describes the attack.
--
-- See: newAttackVectorDescription smart constructor.
data AttackVectorDescription
AttackVectorDescription' :: Text -> AttackVectorDescription
-- | Create a value of AttackVectorDescription with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:vectorType:AttackVectorDescription',
-- attackVectorDescription_vectorType - The attack type. Valid
-- values:
--
--
-- - UDP_TRAFFIC
-- - UDP_FRAGMENT
-- - GENERIC_UDP_REFLECTION
-- - DNS_REFLECTION
-- - NTP_REFLECTION
-- - CHARGEN_REFLECTION
-- - SSDP_REFLECTION
-- - PORT_MAPPER
-- - RIP_REFLECTION
-- - SNMP_REFLECTION
-- - MSSQL_REFLECTION
-- - NET_BIOS_REFLECTION
-- - SYN_FLOOD
-- - ACK_FLOOD
-- - REQUEST_FLOOD
-- - HTTP_REFLECTION
-- - UDS_REFLECTION
-- - MEMCACHED_REFLECTION
--
newAttackVectorDescription :: Text -> AttackVectorDescription
-- | Information about the volume of attacks during the time period,
-- included in an AttackStatisticsDataItem. If the accompanying
-- AttackCount in the statistics object is zero, this setting
-- might be empty.
--
-- See: newAttackVolume smart constructor.
data AttackVolume
AttackVolume' :: Maybe AttackVolumeStatistics -> Maybe AttackVolumeStatistics -> Maybe AttackVolumeStatistics -> AttackVolume
-- | Create a value of AttackVolume with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:bitsPerSecond:AttackVolume',
-- attackVolume_bitsPerSecond - A statistics object that uses bits
-- per second as the unit. This is included for network level attacks.
--
-- $sel:packetsPerSecond:AttackVolume',
-- attackVolume_packetsPerSecond - A statistics object that uses
-- packets per second as the unit. This is included for network level
-- attacks.
--
-- $sel:requestsPerSecond:AttackVolume',
-- attackVolume_requestsPerSecond - A statistics object that uses
-- requests per second as the unit. This is included for application
-- level attacks, and is only available for accounts that are subscribed
-- to Shield Advanced.
newAttackVolume :: AttackVolume
-- | Statistics objects for the various data types in AttackVolume.
--
-- See: newAttackVolumeStatistics smart constructor.
data AttackVolumeStatistics
AttackVolumeStatistics' :: Double -> AttackVolumeStatistics
-- | Create a value of AttackVolumeStatistics with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:max:AttackVolumeStatistics',
-- attackVolumeStatistics_max - The maximum attack volume observed
-- for the given unit.
newAttackVolumeStatistics :: Double -> AttackVolumeStatistics
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Block action.
--
-- This is only used in the context of the ResponseAction
-- setting.
--
-- JSON specification: "Block": {}
--
-- See: newBlockAction smart constructor.
data BlockAction
BlockAction' :: BlockAction
-- | Create a value of BlockAction with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newBlockAction :: BlockAction
-- | A contributor to the attack and their contribution.
--
-- See: newContributor smart constructor.
data Contributor
Contributor' :: Maybe Text -> Maybe Integer -> Contributor
-- | Create a value of Contributor with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:name:Contributor', contributor_name - The name of
-- the contributor. The type of name that you'll find here depends on the
-- AttackPropertyIdentifier setting in the
-- AttackProperty where this contributor is defined. For
-- example, if the AttackPropertyIdentifier is
-- SOURCE_COUNTRY, the Name could be United
-- States.
--
-- $sel:value:Contributor', contributor_value - The
-- contribution of this contributor expressed in Protection units. For
-- example 10,000.
newContributor :: Contributor
-- | Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Count action.
--
-- This is only used in the context of the ResponseAction
-- setting.
--
-- JSON specification: "Count": {}
--
-- See: newCountAction smart constructor.
data CountAction
CountAction' :: CountAction
-- | Create a value of CountAction with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
newCountAction :: CountAction
-- | Contact information that the SRT can use to contact you if you have
-- proactive engagement enabled, for escalations to the SRT and to
-- initiate proactive customer support.
--
-- See: newEmergencyContact smart constructor.
data EmergencyContact
EmergencyContact' :: Maybe Text -> Maybe Text -> Text -> EmergencyContact
-- | Create a value of EmergencyContact with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:contactNotes:EmergencyContact',
-- emergencyContact_contactNotes - Additional notes regarding the
-- contact.
--
-- $sel:phoneNumber:EmergencyContact',
-- emergencyContact_phoneNumber - The phone number for the
-- contact.
--
-- $sel:emailAddress:EmergencyContact',
-- emergencyContact_emailAddress - The email address for the
-- contact.
newEmergencyContact :: Text -> EmergencyContact
-- | Narrows the set of protections that the call retrieves. You can
-- retrieve a single protection by providing its name or the ARN (Amazon
-- Resource Name) of its protected resource. You can also retrieve all
-- protections for a specific resource type. You can provide up to one
-- criteria per filter type. Shield Advanced returns protections that
-- exactly match all of the filter criteria that you provide.
--
-- See: newInclusionProtectionFilters smart constructor.
data InclusionProtectionFilters
InclusionProtectionFilters' :: Maybe (NonEmpty Text) -> Maybe (NonEmpty Text) -> Maybe (NonEmpty ProtectedResourceType) -> InclusionProtectionFilters
-- | Create a value of InclusionProtectionFilters with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionNames:InclusionProtectionFilters',
-- inclusionProtectionFilters_protectionNames - The name of the
-- protection that you want to retrieve.
--
-- $sel:resourceArns:InclusionProtectionFilters',
-- inclusionProtectionFilters_resourceArns - The ARN (Amazon
-- Resource Name) of the resource whose protection you want to retrieve.
--
-- $sel:resourceTypes:InclusionProtectionFilters',
-- inclusionProtectionFilters_resourceTypes - The type of
-- protected resource whose protections you want to retrieve.
newInclusionProtectionFilters :: InclusionProtectionFilters
-- | Narrows the set of protection groups that the call retrieves. You can
-- retrieve a single protection group by its name and you can retrieve
-- all protection groups that are configured with a specific pattern,
-- aggregation, or resource type. You can provide up to one criteria per
-- filter type. Shield Advanced returns the protection groups that
-- exactly match all of the search criteria that you provide.
--
-- See: newInclusionProtectionGroupFilters smart
-- constructor.
data InclusionProtectionGroupFilters
InclusionProtectionGroupFilters' :: Maybe (NonEmpty ProtectionGroupAggregation) -> Maybe (NonEmpty ProtectionGroupPattern) -> Maybe (NonEmpty Text) -> Maybe (NonEmpty ProtectedResourceType) -> InclusionProtectionGroupFilters
-- | Create a value of InclusionProtectionGroupFilters with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:aggregations:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_aggregations - The aggregation
-- setting of the protection groups that you want to retrieve.
--
-- $sel:patterns:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_patterns - The pattern
-- specification of the protection groups that you want to retrieve.
--
-- $sel:protectionGroupIds:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_protectionGroupIds - The ID of
-- the protection group that you want to retrieve.
--
-- $sel:resourceTypes:InclusionProtectionGroupFilters',
-- inclusionProtectionGroupFilters_resourceTypes - The resource
-- type configuration of the protection groups that you want to retrieve.
-- In the protection group configuration, you specify the resource type
-- when you set the group's Pattern to
-- BY_RESOURCE_TYPE.
newInclusionProtectionGroupFilters :: InclusionProtectionGroupFilters
-- | Specifies how many protections of a given type you can create.
--
-- See: newLimit smart constructor.
data Limit
Limit' :: Maybe Integer -> Maybe Text -> Limit
-- | Create a value of Limit with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:max:Limit', limit_max - The maximum number of
-- protections that can be created for the specified Type.
--
-- $sel:type':Limit', limit_type - The type of protection.
newLimit :: Limit
-- | The mitigation applied to a DDoS attack.
--
-- See: newMitigation smart constructor.
data Mitigation
Mitigation' :: Maybe Text -> Mitigation
-- | Create a value of Mitigation with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:mitigationName:Mitigation',
-- mitigation_mitigationName - The name of the mitigation taken
-- for this attack.
newMitigation :: Mitigation
-- | An object that represents a resource that is under DDoS protection.
--
-- See: newProtection smart constructor.
data Protection
Protection' :: Maybe ApplicationLayerAutomaticResponseConfiguration -> Maybe [Text] -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Protection
-- | Create a value of Protection with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
--
-- $sel:applicationLayerAutomaticResponseConfiguration:Protection',
-- protection_applicationLayerAutomaticResponseConfiguration - The
-- automatic application layer DDoS mitigation settings for the
-- protection. This configuration determines whether Shield Advanced
-- automatically manages rules in the web ACL in order to respond to
-- application layer events that Shield Advanced determines to be DDoS
-- attacks.
--
-- $sel:healthCheckIds:Protection',
-- protection_healthCheckIds - The unique identifier (ID) for the
-- Route 53 health check that's associated with the protection.
--
-- $sel:id:Protection', protection_id - The unique
-- identifier (ID) of the protection.
--
-- $sel:name:Protection', protection_name - The name of the
-- protection. For example, My CloudFront distributions.
--
-- $sel:protectionArn:Protection', protection_protectionArn
-- - The ARN (Amazon Resource Name) of the protection.
--
-- $sel:resourceArn:Protection', protection_resourceArn -
-- The ARN (Amazon Resource Name) of the Amazon Web Services resource
-- that is protected.
newProtection :: Protection
-- | A grouping of protected resources that you and Shield Advanced can
-- monitor as a collective. This resource grouping improves the accuracy
-- of detection and reduces false positives.
--
-- See: newProtectionGroup smart constructor.
data ProtectionGroup
ProtectionGroup' :: Maybe Text -> Maybe ProtectedResourceType -> Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> [Text] -> ProtectionGroup
-- | Create a value of ProtectionGroup with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionGroupArn:ProtectionGroup',
-- protectionGroup_protectionGroupArn - The ARN (Amazon Resource
-- Name) of the protection group.
--
-- $sel:resourceType:ProtectionGroup',
-- protectionGroup_resourceType - The resource type to include in
-- the protection group. All protected resources of this type are
-- included in the protection group. You must set this when you set
-- Pattern to BY_RESOURCE_TYPE and you must not set it
-- for any other Pattern setting.
--
-- $sel:protectionGroupId:ProtectionGroup',
-- protectionGroup_protectionGroupId - The name of the protection
-- group. You use this to identify the protection group in lists and to
-- manage the protection group, for example to update, delete, or
-- describe it.
--
-- $sel:aggregation:ProtectionGroup',
-- protectionGroup_aggregation - Defines how Shield combines
-- resource data for the group in order to detect, mitigate, and report
-- events.
--
--
-- - Sum - Use the total traffic across the group. This is a good
-- choice for most cases. Examples include Elastic IP addresses for EC2
-- instances that scale manually or automatically.
-- - Mean - Use the average of the traffic across the group. This is a
-- good choice for resources that share traffic uniformly. Examples
-- include accelerators and load balancers.
-- - Max - Use the highest traffic from each resource. This is useful
-- for resources that don't share traffic and for resources that share
-- that traffic in a non-uniform way. Examples include Amazon CloudFront
-- distributions and origin resources for CloudFront distributions.
--
--
-- $sel:pattern':ProtectionGroup', protectionGroup_pattern
-- - The criteria to use to choose the protected resources for inclusion
-- in the group. You can include all resources that have protections,
-- provide a list of resource ARNs (Amazon Resource Names), or include
-- all resources of a specified resource type.
--
-- $sel:members:ProtectionGroup', protectionGroup_members -
-- The ARNs (Amazon Resource Names) of the resources to include in the
-- protection group. You must set this when you set Pattern to
-- ARBITRARY and you must not set it for any other
-- Pattern setting.
newProtectionGroup :: Text -> ProtectionGroupAggregation -> ProtectionGroupPattern -> ProtectionGroup
-- | Limits settings on protection groups with arbitrary pattern type.
--
-- See: newProtectionGroupArbitraryPatternLimits smart
-- constructor.
data ProtectionGroupArbitraryPatternLimits
ProtectionGroupArbitraryPatternLimits' :: Integer -> ProtectionGroupArbitraryPatternLimits
-- | Create a value of ProtectionGroupArbitraryPatternLimits with
-- all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:maxMembers:ProtectionGroupArbitraryPatternLimits',
-- protectionGroupArbitraryPatternLimits_maxMembers - The maximum
-- number of resources you can specify for a single arbitrary pattern in
-- a protection group.
newProtectionGroupArbitraryPatternLimits :: Integer -> ProtectionGroupArbitraryPatternLimits
-- | Limits settings on protection groups for your subscription.
--
-- See: newProtectionGroupLimits smart constructor.
data ProtectionGroupLimits
ProtectionGroupLimits' :: Integer -> ProtectionGroupPatternTypeLimits -> ProtectionGroupLimits
-- | Create a value of ProtectionGroupLimits with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:maxProtectionGroups:ProtectionGroupLimits',
-- protectionGroupLimits_maxProtectionGroups - The maximum number
-- of protection groups that you can have at one time.
--
-- $sel:patternTypeLimits:ProtectionGroupLimits',
-- protectionGroupLimits_patternTypeLimits - Limits settings by
-- pattern type in the protection groups for your subscription.
newProtectionGroupLimits :: Integer -> ProtectionGroupPatternTypeLimits -> ProtectionGroupLimits
-- | Limits settings by pattern type in the protection groups for your
-- subscription.
--
-- See: newProtectionGroupPatternTypeLimits smart
-- constructor.
data ProtectionGroupPatternTypeLimits
ProtectionGroupPatternTypeLimits' :: ProtectionGroupArbitraryPatternLimits -> ProtectionGroupPatternTypeLimits
-- | Create a value of ProtectionGroupPatternTypeLimits with all
-- optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:arbitraryPatternLimits:ProtectionGroupPatternTypeLimits',
-- protectionGroupPatternTypeLimits_arbitraryPatternLimits -
-- Limits settings on protection groups with arbitrary pattern type.
newProtectionGroupPatternTypeLimits :: ProtectionGroupArbitraryPatternLimits -> ProtectionGroupPatternTypeLimits
-- | Limits settings on protections for your subscription.
--
-- See: newProtectionLimits smart constructor.
data ProtectionLimits
ProtectionLimits' :: [Limit] -> ProtectionLimits
-- | Create a value of ProtectionLimits with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectedResourceTypeLimits:ProtectionLimits',
-- protectionLimits_protectedResourceTypeLimits - The maximum
-- number of resource types that you can specify in a protection.
newProtectionLimits :: ProtectionLimits
-- | Specifies the action setting that Shield Advanced should use in the
-- WAF rules that it creates on behalf of the protected resource in
-- response to DDoS attacks. You specify this as part of the
-- configuration for the automatic application layer DDoS mitigation
-- feature, when you enable or update automatic mitigation. Shield
-- Advanced creates the WAF rules in a Shield Advanced-managed rule
-- group, inside the web ACL that you have associated with the resource.
--
-- See: newResponseAction smart constructor.
data ResponseAction
ResponseAction' :: Maybe BlockAction -> Maybe CountAction -> ResponseAction
-- | Create a value of ResponseAction with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:block:ResponseAction', responseAction_block -
-- Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Block action.
--
-- You must specify exactly one action, either Block or
-- Count.
--
-- $sel:count:ResponseAction', responseAction_count -
-- Specifies that Shield Advanced should configure its WAF rules with the
-- WAF Count action.
--
-- You must specify exactly one action, either Block or
-- Count.
newResponseAction :: ResponseAction
-- | The attack information for the specified SubResource.
--
-- See: newSubResourceSummary smart constructor.
data SubResourceSummary
SubResourceSummary' :: Maybe [SummarizedAttackVector] -> Maybe [SummarizedCounter] -> Maybe Text -> Maybe SubResourceType -> SubResourceSummary
-- | Create a value of SubResourceSummary with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:attackVectors:SubResourceSummary',
-- subResourceSummary_attackVectors - The list of attack types and
-- associated counters.
--
-- $sel:counters:SubResourceSummary',
-- subResourceSummary_counters - The counters that describe the
-- details of the attack.
--
-- $sel:id:SubResourceSummary', subResourceSummary_id - The
-- unique identifier (ID) of the SubResource.
--
-- $sel:type':SubResourceSummary', subResourceSummary_type
-- - The SubResource type.
newSubResourceSummary :: SubResourceSummary
-- | Information about the Shield Advanced subscription for an account.
--
-- See: newSubscription smart constructor.
data Subscription
Subscription' :: Maybe AutoRenew -> Maybe POSIX -> Maybe [Limit] -> Maybe ProactiveEngagementStatus -> Maybe POSIX -> Maybe Text -> Maybe Natural -> SubscriptionLimits -> Subscription
-- | Create a value of Subscription with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:autoRenew:Subscription', subscription_autoRenew -
-- If ENABLED, the subscription will be automatically renewed at
-- the end of the existing subscription period.
--
-- When you initally create a subscription, AutoRenew is set to
-- ENABLED. You can change this by submitting an
-- UpdateSubscription request. If the
-- UpdateSubscription request does not included a value for
-- AutoRenew, the existing value for AutoRenew remains
-- unchanged.
--
-- $sel:endTime:Subscription', subscription_endTime - The
-- date and time your subscription will end.
--
-- $sel:limits:Subscription', subscription_limits -
-- Specifies how many protections of a given type you can create.
--
-- $sel:proactiveEngagementStatus:Subscription',
-- subscription_proactiveEngagementStatus - If ENABLED,
-- the Shield Response Team (SRT) will use email and phone to notify
-- contacts about escalations to the SRT and to initiate proactive
-- customer support.
--
-- If PENDING, you have requested proactive engagement and the
-- request is pending. The status changes to ENABLED when your
-- request is fully processed.
--
-- If DISABLED, the SRT will not proactively notify contacts
-- about escalations or to initiate proactive customer support.
--
-- $sel:startTime:Subscription', subscription_startTime -
-- The start time of the subscription, in Unix time in seconds.
--
-- $sel:subscriptionArn:Subscription',
-- subscription_subscriptionArn - The ARN (Amazon Resource Name)
-- of the subscription.
--
-- $sel:timeCommitmentInSeconds:Subscription',
-- subscription_timeCommitmentInSeconds - The length, in seconds,
-- of the Shield Advanced subscription for the account.
--
-- $sel:subscriptionLimits:Subscription',
-- subscription_subscriptionLimits - Limits settings for your
-- subscription.
newSubscription :: SubscriptionLimits -> Subscription
-- | Limits settings for your subscription.
--
-- See: newSubscriptionLimits smart constructor.
data SubscriptionLimits
SubscriptionLimits' :: ProtectionLimits -> ProtectionGroupLimits -> SubscriptionLimits
-- | Create a value of SubscriptionLimits with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:protectionLimits:SubscriptionLimits',
-- subscriptionLimits_protectionLimits - Limits settings on
-- protections for your subscription.
--
-- $sel:protectionGroupLimits:SubscriptionLimits',
-- subscriptionLimits_protectionGroupLimits - Limits settings on
-- protection groups for your subscription.
newSubscriptionLimits :: ProtectionLimits -> ProtectionGroupLimits -> SubscriptionLimits
-- | A summary of information about the attack.
--
-- See: newSummarizedAttackVector smart constructor.
data SummarizedAttackVector
SummarizedAttackVector' :: Maybe [SummarizedCounter] -> Text -> SummarizedAttackVector
-- | Create a value of SummarizedAttackVector with all optional
-- fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:vectorCounters:SummarizedAttackVector',
-- summarizedAttackVector_vectorCounters - The list of counters
-- that describe the details of the attack.
--
-- $sel:vectorType:SummarizedAttackVector',
-- summarizedAttackVector_vectorType - The attack type, for
-- example, SNMP reflection or SYN flood.
newSummarizedAttackVector :: Text -> SummarizedAttackVector
-- | The counter that describes a DDoS attack.
--
-- See: newSummarizedCounter smart constructor.
data SummarizedCounter
SummarizedCounter' :: Maybe Double -> Maybe Double -> Maybe Int -> Maybe Text -> Maybe Double -> Maybe Text -> SummarizedCounter
-- | Create a value of SummarizedCounter with all optional fields
-- omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:average:SummarizedCounter',
-- summarizedCounter_average - The average value of the counter
-- for a specified time period.
--
-- $sel:max:SummarizedCounter', summarizedCounter_max - The
-- maximum value of the counter for a specified time period.
--
-- $sel:n:SummarizedCounter', summarizedCounter_n - The
-- number of counters for a specified time period.
--
-- $sel:name:SummarizedCounter', summarizedCounter_name -
-- The counter name.
--
-- $sel:sum:SummarizedCounter', summarizedCounter_sum - The
-- total of counter values for a specified time period.
--
-- $sel:unit:SummarizedCounter', summarizedCounter_unit -
-- The unit of the counters.
newSummarizedCounter :: SummarizedCounter
-- | A tag associated with an Amazon Web Services resource. Tags are
-- key:value pairs that you can use to categorize and manage your
-- resources, for purposes like billing or other management. Typically,
-- the tag key represents a category, such as "environment", and the tag
-- value represents a specific value within that category, such as
-- "test," "development," or "production". Or you might set the tag key
-- to "customer" and the value to the customer name or ID. You can
-- specify one or more tags to add to each Amazon Web Services resource,
-- up to 50 tags for a resource.
--
-- See: newTag smart constructor.
data Tag
Tag' :: Maybe Text -> Maybe Text -> Tag
-- | Create a value of Tag with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:key:Tag', tag_key - Part of the key:value pair that
-- defines a tag. You can use a tag key to describe a category of
-- information, such as "customer." Tag keys are case-sensitive.
--
-- $sel:value:Tag', tag_value - Part of the key:value pair
-- that defines a tag. You can use a tag value to describe a specific
-- value within a category, such as "companyA" or "companyB." Tag values
-- are case-sensitive.
newTag :: Tag
-- | The time range.
--
-- See: newTimeRange smart constructor.
data TimeRange
TimeRange' :: Maybe POSIX -> Maybe POSIX -> TimeRange
-- | Create a value of TimeRange with all optional fields omitted.
--
-- Use generic-lens or optics to modify other optional
-- fields.
--
-- The following record fields are available, with the corresponding
-- lenses provided for backwards compatibility:
--
-- $sel:fromInclusive:TimeRange', timeRange_fromInclusive -
-- The start time, in Unix time in seconds.
--
-- $sel:toExclusive:TimeRange', timeRange_toExclusive - The
-- end time, in Unix time in seconds.
newTimeRange :: TimeRange