{-# 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.FinSpaceData.Types.ApplicationPermission
-- 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.FinSpaceData.Types.ApplicationPermission
  ( ApplicationPermission
      ( ..,
        ApplicationPermission_AccessNotebooks,
        ApplicationPermission_CreateDataset,
        ApplicationPermission_GetTemporaryCredentials,
        ApplicationPermission_ManageAttributeSets,
        ApplicationPermission_ManageClusters,
        ApplicationPermission_ManageUsersAndGroups,
        ApplicationPermission_ViewAuditData
      ),
  )
where

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

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

pattern ApplicationPermission_AccessNotebooks :: ApplicationPermission
pattern $bApplicationPermission_AccessNotebooks :: ApplicationPermission
$mApplicationPermission_AccessNotebooks :: forall {r}.
ApplicationPermission -> ((# #) -> r) -> ((# #) -> r) -> r
ApplicationPermission_AccessNotebooks = ApplicationPermission' "AccessNotebooks"

pattern ApplicationPermission_CreateDataset :: ApplicationPermission
pattern $bApplicationPermission_CreateDataset :: ApplicationPermission
$mApplicationPermission_CreateDataset :: forall {r}.
ApplicationPermission -> ((# #) -> r) -> ((# #) -> r) -> r
ApplicationPermission_CreateDataset = ApplicationPermission' "CreateDataset"

pattern ApplicationPermission_GetTemporaryCredentials :: ApplicationPermission
pattern $bApplicationPermission_GetTemporaryCredentials :: ApplicationPermission
$mApplicationPermission_GetTemporaryCredentials :: forall {r}.
ApplicationPermission -> ((# #) -> r) -> ((# #) -> r) -> r
ApplicationPermission_GetTemporaryCredentials = ApplicationPermission' "GetTemporaryCredentials"

pattern ApplicationPermission_ManageAttributeSets :: ApplicationPermission
pattern $bApplicationPermission_ManageAttributeSets :: ApplicationPermission
$mApplicationPermission_ManageAttributeSets :: forall {r}.
ApplicationPermission -> ((# #) -> r) -> ((# #) -> r) -> r
ApplicationPermission_ManageAttributeSets = ApplicationPermission' "ManageAttributeSets"

pattern ApplicationPermission_ManageClusters :: ApplicationPermission
pattern $bApplicationPermission_ManageClusters :: ApplicationPermission
$mApplicationPermission_ManageClusters :: forall {r}.
ApplicationPermission -> ((# #) -> r) -> ((# #) -> r) -> r
ApplicationPermission_ManageClusters = ApplicationPermission' "ManageClusters"

pattern ApplicationPermission_ManageUsersAndGroups :: ApplicationPermission
pattern $bApplicationPermission_ManageUsersAndGroups :: ApplicationPermission
$mApplicationPermission_ManageUsersAndGroups :: forall {r}.
ApplicationPermission -> ((# #) -> r) -> ((# #) -> r) -> r
ApplicationPermission_ManageUsersAndGroups = ApplicationPermission' "ManageUsersAndGroups"

pattern ApplicationPermission_ViewAuditData :: ApplicationPermission
pattern $bApplicationPermission_ViewAuditData :: ApplicationPermission
$mApplicationPermission_ViewAuditData :: forall {r}.
ApplicationPermission -> ((# #) -> r) -> ((# #) -> r) -> r
ApplicationPermission_ViewAuditData = ApplicationPermission' "ViewAuditData"

{-# COMPLETE
  ApplicationPermission_AccessNotebooks,
  ApplicationPermission_CreateDataset,
  ApplicationPermission_GetTemporaryCredentials,
  ApplicationPermission_ManageAttributeSets,
  ApplicationPermission_ManageClusters,
  ApplicationPermission_ManageUsersAndGroups,
  ApplicationPermission_ViewAuditData,
  ApplicationPermission'
  #-}