{-# 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.SmbSecurityDescriptorCopyFlags
-- 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.SmbSecurityDescriptorCopyFlags
  ( SmbSecurityDescriptorCopyFlags
      ( ..,
        SmbSecurityDescriptorCopyFlags_NONE,
        SmbSecurityDescriptorCopyFlags_OWNER_DACL,
        SmbSecurityDescriptorCopyFlags_OWNER_DACL_SACL
      ),
  )
where

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

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

pattern SmbSecurityDescriptorCopyFlags_NONE :: SmbSecurityDescriptorCopyFlags
pattern $bSmbSecurityDescriptorCopyFlags_NONE :: SmbSecurityDescriptorCopyFlags
$mSmbSecurityDescriptorCopyFlags_NONE :: forall r.
SmbSecurityDescriptorCopyFlags -> (Void# -> r) -> (Void# -> r) -> r
SmbSecurityDescriptorCopyFlags_NONE = SmbSecurityDescriptorCopyFlags' "NONE"

pattern SmbSecurityDescriptorCopyFlags_OWNER_DACL :: SmbSecurityDescriptorCopyFlags
pattern $bSmbSecurityDescriptorCopyFlags_OWNER_DACL :: SmbSecurityDescriptorCopyFlags
$mSmbSecurityDescriptorCopyFlags_OWNER_DACL :: forall r.
SmbSecurityDescriptorCopyFlags -> (Void# -> r) -> (Void# -> r) -> r
SmbSecurityDescriptorCopyFlags_OWNER_DACL = SmbSecurityDescriptorCopyFlags' "OWNER_DACL"

pattern SmbSecurityDescriptorCopyFlags_OWNER_DACL_SACL :: SmbSecurityDescriptorCopyFlags
pattern $bSmbSecurityDescriptorCopyFlags_OWNER_DACL_SACL :: SmbSecurityDescriptorCopyFlags
$mSmbSecurityDescriptorCopyFlags_OWNER_DACL_SACL :: forall r.
SmbSecurityDescriptorCopyFlags -> (Void# -> r) -> (Void# -> r) -> r
SmbSecurityDescriptorCopyFlags_OWNER_DACL_SACL = SmbSecurityDescriptorCopyFlags' "OWNER_DACL_SACL"

{-# COMPLETE
  SmbSecurityDescriptorCopyFlags_NONE,
  SmbSecurityDescriptorCopyFlags_OWNER_DACL,
  SmbSecurityDescriptorCopyFlags_OWNER_DACL_SACL,
  SmbSecurityDescriptorCopyFlags'
  #-}