{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.GuardDuty.Types.IpSetFormat
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.GuardDuty.Types.IpSetFormat
  ( IpSetFormat
      ( ..,
        IpSetFormat_ALIEN_VAULT,
        IpSetFormat_FIRE_EYE,
        IpSetFormat_OTX_CSV,
        IpSetFormat_PROOF_POINT,
        IpSetFormat_STIX,
        IpSetFormat_TXT
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Prelude as Prelude

newtype IpSetFormat = IpSetFormat'
  { IpSetFormat -> Text
fromIpSetFormat ::
      Core.Text
  }
  deriving stock
    ( Int -> IpSetFormat -> ShowS
[IpSetFormat] -> ShowS
IpSetFormat -> String
(Int -> IpSetFormat -> ShowS)
-> (IpSetFormat -> String)
-> ([IpSetFormat] -> ShowS)
-> Show IpSetFormat
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IpSetFormat] -> ShowS
$cshowList :: [IpSetFormat] -> ShowS
show :: IpSetFormat -> String
$cshow :: IpSetFormat -> String
showsPrec :: Int -> IpSetFormat -> ShowS
$cshowsPrec :: Int -> IpSetFormat -> ShowS
Prelude.Show,
      ReadPrec [IpSetFormat]
ReadPrec IpSetFormat
Int -> ReadS IpSetFormat
ReadS [IpSetFormat]
(Int -> ReadS IpSetFormat)
-> ReadS [IpSetFormat]
-> ReadPrec IpSetFormat
-> ReadPrec [IpSetFormat]
-> Read IpSetFormat
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [IpSetFormat]
$creadListPrec :: ReadPrec [IpSetFormat]
readPrec :: ReadPrec IpSetFormat
$creadPrec :: ReadPrec IpSetFormat
readList :: ReadS [IpSetFormat]
$creadList :: ReadS [IpSetFormat]
readsPrec :: Int -> ReadS IpSetFormat
$creadsPrec :: Int -> ReadS IpSetFormat
Prelude.Read,
      IpSetFormat -> IpSetFormat -> Bool
(IpSetFormat -> IpSetFormat -> Bool)
-> (IpSetFormat -> IpSetFormat -> Bool) -> Eq IpSetFormat
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IpSetFormat -> IpSetFormat -> Bool
$c/= :: IpSetFormat -> IpSetFormat -> Bool
== :: IpSetFormat -> IpSetFormat -> Bool
$c== :: IpSetFormat -> IpSetFormat -> Bool
Prelude.Eq,
      Eq IpSetFormat
Eq IpSetFormat
-> (IpSetFormat -> IpSetFormat -> Ordering)
-> (IpSetFormat -> IpSetFormat -> Bool)
-> (IpSetFormat -> IpSetFormat -> Bool)
-> (IpSetFormat -> IpSetFormat -> Bool)
-> (IpSetFormat -> IpSetFormat -> Bool)
-> (IpSetFormat -> IpSetFormat -> IpSetFormat)
-> (IpSetFormat -> IpSetFormat -> IpSetFormat)
-> Ord IpSetFormat
IpSetFormat -> IpSetFormat -> Bool
IpSetFormat -> IpSetFormat -> Ordering
IpSetFormat -> IpSetFormat -> IpSetFormat
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: IpSetFormat -> IpSetFormat -> IpSetFormat
$cmin :: IpSetFormat -> IpSetFormat -> IpSetFormat
max :: IpSetFormat -> IpSetFormat -> IpSetFormat
$cmax :: IpSetFormat -> IpSetFormat -> IpSetFormat
>= :: IpSetFormat -> IpSetFormat -> Bool
$c>= :: IpSetFormat -> IpSetFormat -> Bool
> :: IpSetFormat -> IpSetFormat -> Bool
$c> :: IpSetFormat -> IpSetFormat -> Bool
<= :: IpSetFormat -> IpSetFormat -> Bool
$c<= :: IpSetFormat -> IpSetFormat -> Bool
< :: IpSetFormat -> IpSetFormat -> Bool
$c< :: IpSetFormat -> IpSetFormat -> Bool
compare :: IpSetFormat -> IpSetFormat -> Ordering
$ccompare :: IpSetFormat -> IpSetFormat -> Ordering
$cp1Ord :: Eq IpSetFormat
Prelude.Ord,
      (forall x. IpSetFormat -> Rep IpSetFormat x)
-> (forall x. Rep IpSetFormat x -> IpSetFormat)
-> Generic IpSetFormat
forall x. Rep IpSetFormat x -> IpSetFormat
forall x. IpSetFormat -> Rep IpSetFormat x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IpSetFormat x -> IpSetFormat
$cfrom :: forall x. IpSetFormat -> Rep IpSetFormat x
Prelude.Generic
    )
  deriving newtype
    ( Int -> IpSetFormat -> Int
IpSetFormat -> Int
(Int -> IpSetFormat -> Int)
-> (IpSetFormat -> Int) -> Hashable IpSetFormat
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: IpSetFormat -> Int
$chash :: IpSetFormat -> Int
hashWithSalt :: Int -> IpSetFormat -> Int
$chashWithSalt :: Int -> IpSetFormat -> Int
Prelude.Hashable,
      IpSetFormat -> ()
(IpSetFormat -> ()) -> NFData IpSetFormat
forall a. (a -> ()) -> NFData a
rnf :: IpSetFormat -> ()
$crnf :: IpSetFormat -> ()
Prelude.NFData,
      Text -> Either String IpSetFormat
(Text -> Either String IpSetFormat) -> FromText IpSetFormat
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String IpSetFormat
$cfromText :: Text -> Either String IpSetFormat
Core.FromText,
      IpSetFormat -> Text
(IpSetFormat -> Text) -> ToText IpSetFormat
forall a. (a -> Text) -> ToText a
toText :: IpSetFormat -> Text
$ctoText :: IpSetFormat -> Text
Core.ToText,
      IpSetFormat -> ByteString
(IpSetFormat -> ByteString) -> ToByteString IpSetFormat
forall a. (a -> ByteString) -> ToByteString a
toBS :: IpSetFormat -> ByteString
$ctoBS :: IpSetFormat -> ByteString
Core.ToByteString,
      IpSetFormat -> ByteStringBuilder
(IpSetFormat -> ByteStringBuilder) -> ToLog IpSetFormat
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: IpSetFormat -> ByteStringBuilder
$cbuild :: IpSetFormat -> ByteStringBuilder
Core.ToLog,
      HeaderName -> IpSetFormat -> [Header]
(HeaderName -> IpSetFormat -> [Header]) -> ToHeader IpSetFormat
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> IpSetFormat -> [Header]
$ctoHeader :: HeaderName -> IpSetFormat -> [Header]
Core.ToHeader,
      IpSetFormat -> QueryString
(IpSetFormat -> QueryString) -> ToQuery IpSetFormat
forall a. (a -> QueryString) -> ToQuery a
toQuery :: IpSetFormat -> QueryString
$ctoQuery :: IpSetFormat -> QueryString
Core.ToQuery,
      Value -> Parser [IpSetFormat]
Value -> Parser IpSetFormat
(Value -> Parser IpSetFormat)
-> (Value -> Parser [IpSetFormat]) -> FromJSON IpSetFormat
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [IpSetFormat]
$cparseJSONList :: Value -> Parser [IpSetFormat]
parseJSON :: Value -> Parser IpSetFormat
$cparseJSON :: Value -> Parser IpSetFormat
Core.FromJSON,
      FromJSONKeyFunction [IpSetFormat]
FromJSONKeyFunction IpSetFormat
FromJSONKeyFunction IpSetFormat
-> FromJSONKeyFunction [IpSetFormat] -> FromJSONKey IpSetFormat
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [IpSetFormat]
$cfromJSONKeyList :: FromJSONKeyFunction [IpSetFormat]
fromJSONKey :: FromJSONKeyFunction IpSetFormat
$cfromJSONKey :: FromJSONKeyFunction IpSetFormat
Core.FromJSONKey,
      [IpSetFormat] -> Encoding
[IpSetFormat] -> Value
IpSetFormat -> Encoding
IpSetFormat -> Value
(IpSetFormat -> Value)
-> (IpSetFormat -> Encoding)
-> ([IpSetFormat] -> Value)
-> ([IpSetFormat] -> Encoding)
-> ToJSON IpSetFormat
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [IpSetFormat] -> Encoding
$ctoEncodingList :: [IpSetFormat] -> Encoding
toJSONList :: [IpSetFormat] -> Value
$ctoJSONList :: [IpSetFormat] -> Value
toEncoding :: IpSetFormat -> Encoding
$ctoEncoding :: IpSetFormat -> Encoding
toJSON :: IpSetFormat -> Value
$ctoJSON :: IpSetFormat -> Value
Core.ToJSON,
      ToJSONKeyFunction [IpSetFormat]
ToJSONKeyFunction IpSetFormat
ToJSONKeyFunction IpSetFormat
-> ToJSONKeyFunction [IpSetFormat] -> ToJSONKey IpSetFormat
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [IpSetFormat]
$ctoJSONKeyList :: ToJSONKeyFunction [IpSetFormat]
toJSONKey :: ToJSONKeyFunction IpSetFormat
$ctoJSONKey :: ToJSONKeyFunction IpSetFormat
Core.ToJSONKey,
      [Node] -> Either String IpSetFormat
([Node] -> Either String IpSetFormat) -> FromXML IpSetFormat
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String IpSetFormat
$cparseXML :: [Node] -> Either String IpSetFormat
Core.FromXML,
      IpSetFormat -> XML
(IpSetFormat -> XML) -> ToXML IpSetFormat
forall a. (a -> XML) -> ToXML a
toXML :: IpSetFormat -> XML
$ctoXML :: IpSetFormat -> XML
Core.ToXML
    )

pattern IpSetFormat_ALIEN_VAULT :: IpSetFormat
pattern $bIpSetFormat_ALIEN_VAULT :: IpSetFormat
$mIpSetFormat_ALIEN_VAULT :: forall r. IpSetFormat -> (Void# -> r) -> (Void# -> r) -> r
IpSetFormat_ALIEN_VAULT = IpSetFormat' "ALIEN_VAULT"

pattern IpSetFormat_FIRE_EYE :: IpSetFormat
pattern $bIpSetFormat_FIRE_EYE :: IpSetFormat
$mIpSetFormat_FIRE_EYE :: forall r. IpSetFormat -> (Void# -> r) -> (Void# -> r) -> r
IpSetFormat_FIRE_EYE = IpSetFormat' "FIRE_EYE"

pattern IpSetFormat_OTX_CSV :: IpSetFormat
pattern $bIpSetFormat_OTX_CSV :: IpSetFormat
$mIpSetFormat_OTX_CSV :: forall r. IpSetFormat -> (Void# -> r) -> (Void# -> r) -> r
IpSetFormat_OTX_CSV = IpSetFormat' "OTX_CSV"

pattern IpSetFormat_PROOF_POINT :: IpSetFormat
pattern $bIpSetFormat_PROOF_POINT :: IpSetFormat
$mIpSetFormat_PROOF_POINT :: forall r. IpSetFormat -> (Void# -> r) -> (Void# -> r) -> r
IpSetFormat_PROOF_POINT = IpSetFormat' "PROOF_POINT"

pattern IpSetFormat_STIX :: IpSetFormat
pattern $bIpSetFormat_STIX :: IpSetFormat
$mIpSetFormat_STIX :: forall r. IpSetFormat -> (Void# -> r) -> (Void# -> r) -> r
IpSetFormat_STIX = IpSetFormat' "STIX"

pattern IpSetFormat_TXT :: IpSetFormat
pattern $bIpSetFormat_TXT :: IpSetFormat
$mIpSetFormat_TXT :: forall r. IpSetFormat -> (Void# -> r) -> (Void# -> r) -> r
IpSetFormat_TXT = IpSetFormat' "TXT"

{-# COMPLETE
  IpSetFormat_ALIEN_VAULT,
  IpSetFormat_FIRE_EYE,
  IpSetFormat_OTX_CSV,
  IpSetFormat_PROOF_POINT,
  IpSetFormat_STIX,
  IpSetFormat_TXT,
  IpSetFormat'
  #-}