{-# 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.LakeFormation.Types.ResourceShareType
-- 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.LakeFormation.Types.ResourceShareType
  ( ResourceShareType
      ( ..,
        ResourceShareType_ALL,
        ResourceShareType_FOREIGN
      ),
  )
where

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

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

pattern ResourceShareType_ALL :: ResourceShareType
pattern $bResourceShareType_ALL :: ResourceShareType
$mResourceShareType_ALL :: forall {r}. ResourceShareType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceShareType_ALL = ResourceShareType' "ALL"

pattern ResourceShareType_FOREIGN :: ResourceShareType
pattern $bResourceShareType_FOREIGN :: ResourceShareType
$mResourceShareType_FOREIGN :: forall {r}. ResourceShareType -> ((# #) -> r) -> ((# #) -> r) -> r
ResourceShareType_FOREIGN = ResourceShareType' "FOREIGN"

{-# COMPLETE
  ResourceShareType_ALL,
  ResourceShareType_FOREIGN,
  ResourceShareType'
  #-}