{-# 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.StorageGateway.Types.CaseSensitivity
-- 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.StorageGateway.Types.CaseSensitivity
  ( CaseSensitivity
      ( ..,
        CaseSensitivity_CaseSensitive,
        CaseSensitivity_ClientSpecified
      ),
  )
where

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

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

pattern CaseSensitivity_CaseSensitive :: CaseSensitivity
pattern $bCaseSensitivity_CaseSensitive :: CaseSensitivity
$mCaseSensitivity_CaseSensitive :: forall r. CaseSensitivity -> (Void# -> r) -> (Void# -> r) -> r
CaseSensitivity_CaseSensitive = CaseSensitivity' "CaseSensitive"

pattern CaseSensitivity_ClientSpecified :: CaseSensitivity
pattern $bCaseSensitivity_ClientSpecified :: CaseSensitivity
$mCaseSensitivity_ClientSpecified :: forall r. CaseSensitivity -> (Void# -> r) -> (Void# -> r) -> r
CaseSensitivity_ClientSpecified = CaseSensitivity' "ClientSpecified"

{-# COMPLETE
  CaseSensitivity_CaseSensitive,
  CaseSensitivity_ClientSpecified,
  CaseSensitivity'
  #-}