{-# 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.DataSync.Types.VerifyMode
-- 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.DataSync.Types.VerifyMode
  ( VerifyMode
      ( ..,
        VerifyMode_NONE,
        VerifyMode_ONLY_FILES_TRANSFERRED,
        VerifyMode_POINT_IN_TIME_CONSISTENT
      ),
  )
where

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

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

pattern VerifyMode_NONE :: VerifyMode
pattern $bVerifyMode_NONE :: VerifyMode
$mVerifyMode_NONE :: forall r. VerifyMode -> (Void# -> r) -> (Void# -> r) -> r
VerifyMode_NONE = VerifyMode' "NONE"

pattern VerifyMode_ONLY_FILES_TRANSFERRED :: VerifyMode
pattern $bVerifyMode_ONLY_FILES_TRANSFERRED :: VerifyMode
$mVerifyMode_ONLY_FILES_TRANSFERRED :: forall r. VerifyMode -> (Void# -> r) -> (Void# -> r) -> r
VerifyMode_ONLY_FILES_TRANSFERRED = VerifyMode' "ONLY_FILES_TRANSFERRED"

pattern VerifyMode_POINT_IN_TIME_CONSISTENT :: VerifyMode
pattern $bVerifyMode_POINT_IN_TIME_CONSISTENT :: VerifyMode
$mVerifyMode_POINT_IN_TIME_CONSISTENT :: forall r. VerifyMode -> (Void# -> r) -> (Void# -> r) -> r
VerifyMode_POINT_IN_TIME_CONSISTENT = VerifyMode' "POINT_IN_TIME_CONSISTENT"

{-# COMPLETE
  VerifyMode_NONE,
  VerifyMode_ONLY_FILES_TRANSFERRED,
  VerifyMode_POINT_IN_TIME_CONSISTENT,
  VerifyMode'
  #-}