{-# 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.Route53Resolver.Types.Validation
-- 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.Route53Resolver.Types.Validation
  ( Validation
      ( ..,
        Validation_DISABLE,
        Validation_ENABLE
      ),
  )
where

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

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

pattern Validation_DISABLE :: Validation
pattern $bValidation_DISABLE :: Validation
$mValidation_DISABLE :: forall r. Validation -> (Void# -> r) -> (Void# -> r) -> r
Validation_DISABLE = Validation' "DISABLE"

pattern Validation_ENABLE :: Validation
pattern $bValidation_ENABLE :: Validation
$mValidation_ENABLE :: forall r. Validation -> (Void# -> r) -> (Void# -> r) -> r
Validation_ENABLE = Validation' "ENABLE"

{-# COMPLETE
  Validation_DISABLE,
  Validation_ENABLE,
  Validation'
  #-}