{-# 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.WorkMail.Types.MobileDeviceAccessRuleEffect
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.WorkMail.Types.MobileDeviceAccessRuleEffect
  ( MobileDeviceAccessRuleEffect
      ( ..,
        MobileDeviceAccessRuleEffect_ALLOW,
        MobileDeviceAccessRuleEffect_DENY
      ),
  )
where

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

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

pattern MobileDeviceAccessRuleEffect_ALLOW :: MobileDeviceAccessRuleEffect
pattern $bMobileDeviceAccessRuleEffect_ALLOW :: MobileDeviceAccessRuleEffect
$mMobileDeviceAccessRuleEffect_ALLOW :: forall {r}.
MobileDeviceAccessRuleEffect -> ((# #) -> r) -> ((# #) -> r) -> r
MobileDeviceAccessRuleEffect_ALLOW = MobileDeviceAccessRuleEffect' "ALLOW"

pattern MobileDeviceAccessRuleEffect_DENY :: MobileDeviceAccessRuleEffect
pattern $bMobileDeviceAccessRuleEffect_DENY :: MobileDeviceAccessRuleEffect
$mMobileDeviceAccessRuleEffect_DENY :: forall {r}.
MobileDeviceAccessRuleEffect -> ((# #) -> r) -> ((# #) -> r) -> r
MobileDeviceAccessRuleEffect_DENY = MobileDeviceAccessRuleEffect' "DENY"

{-# COMPLETE
  MobileDeviceAccessRuleEffect_ALLOW,
  MobileDeviceAccessRuleEffect_DENY,
  MobileDeviceAccessRuleEffect'
  #-}