module Stratosphere.LakeFormation.DataLakeSettings.PrincipalPermissionsProperty (
        module Exports, PrincipalPermissionsProperty(..),
        mkPrincipalPermissionsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.LakeFormation.DataLakeSettings.DataLakePrincipalProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data PrincipalPermissionsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-datalakesettings-principalpermissions.html>
    PrincipalPermissionsProperty {PrincipalPermissionsProperty -> ()
haddock_workaround_ :: (),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-datalakesettings-principalpermissions.html#cfn-lakeformation-datalakesettings-principalpermissions-permissions>
                                  PrincipalPermissionsProperty -> ValueList Text
permissions :: (ValueList Prelude.Text),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-datalakesettings-principalpermissions.html#cfn-lakeformation-datalakesettings-principalpermissions-principal>
                                  PrincipalPermissionsProperty -> DataLakePrincipalProperty
principal :: DataLakePrincipalProperty}
  deriving stock (PrincipalPermissionsProperty
-> PrincipalPermissionsProperty -> Bool
(PrincipalPermissionsProperty
 -> PrincipalPermissionsProperty -> Bool)
-> (PrincipalPermissionsProperty
    -> PrincipalPermissionsProperty -> Bool)
-> Eq PrincipalPermissionsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PrincipalPermissionsProperty
-> PrincipalPermissionsProperty -> Bool
== :: PrincipalPermissionsProperty
-> PrincipalPermissionsProperty -> Bool
$c/= :: PrincipalPermissionsProperty
-> PrincipalPermissionsProperty -> Bool
/= :: PrincipalPermissionsProperty
-> PrincipalPermissionsProperty -> Bool
Prelude.Eq, Int -> PrincipalPermissionsProperty -> ShowS
[PrincipalPermissionsProperty] -> ShowS
PrincipalPermissionsProperty -> String
(Int -> PrincipalPermissionsProperty -> ShowS)
-> (PrincipalPermissionsProperty -> String)
-> ([PrincipalPermissionsProperty] -> ShowS)
-> Show PrincipalPermissionsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PrincipalPermissionsProperty -> ShowS
showsPrec :: Int -> PrincipalPermissionsProperty -> ShowS
$cshow :: PrincipalPermissionsProperty -> String
show :: PrincipalPermissionsProperty -> String
$cshowList :: [PrincipalPermissionsProperty] -> ShowS
showList :: [PrincipalPermissionsProperty] -> ShowS
Prelude.Show)
mkPrincipalPermissionsProperty ::
  ValueList Prelude.Text
  -> DataLakePrincipalProperty -> PrincipalPermissionsProperty
mkPrincipalPermissionsProperty :: ValueList Text
-> DataLakePrincipalProperty -> PrincipalPermissionsProperty
mkPrincipalPermissionsProperty ValueList Text
permissions DataLakePrincipalProperty
principal
  = PrincipalPermissionsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), permissions :: ValueList Text
permissions = ValueList Text
permissions,
       principal :: DataLakePrincipalProperty
principal = DataLakePrincipalProperty
principal}
instance ToResourceProperties PrincipalPermissionsProperty where
  toResourceProperties :: PrincipalPermissionsProperty -> ResourceProperties
toResourceProperties PrincipalPermissionsProperty {()
ValueList Text
DataLakePrincipalProperty
haddock_workaround_ :: PrincipalPermissionsProperty -> ()
permissions :: PrincipalPermissionsProperty -> ValueList Text
principal :: PrincipalPermissionsProperty -> DataLakePrincipalProperty
haddock_workaround_ :: ()
permissions :: ValueList Text
principal :: DataLakePrincipalProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::LakeFormation::DataLakeSettings.PrincipalPermissions",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Permissions" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
permissions,
                       Key
"Principal" Key -> DataLakePrincipalProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DataLakePrincipalProperty
principal]}
instance JSON.ToJSON PrincipalPermissionsProperty where
  toJSON :: PrincipalPermissionsProperty -> Value
toJSON PrincipalPermissionsProperty {()
ValueList Text
DataLakePrincipalProperty
haddock_workaround_ :: PrincipalPermissionsProperty -> ()
permissions :: PrincipalPermissionsProperty -> ValueList Text
principal :: PrincipalPermissionsProperty -> DataLakePrincipalProperty
haddock_workaround_ :: ()
permissions :: ValueList Text
principal :: DataLakePrincipalProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Permissions" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
permissions, Key
"Principal" Key -> DataLakePrincipalProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DataLakePrincipalProperty
principal]
instance Property "Permissions" PrincipalPermissionsProperty where
  type PropertyType "Permissions" PrincipalPermissionsProperty = ValueList Prelude.Text
  set :: PropertyType "Permissions" PrincipalPermissionsProperty
-> PrincipalPermissionsProperty -> PrincipalPermissionsProperty
set PropertyType "Permissions" PrincipalPermissionsProperty
newValue PrincipalPermissionsProperty {()
ValueList Text
DataLakePrincipalProperty
haddock_workaround_ :: PrincipalPermissionsProperty -> ()
permissions :: PrincipalPermissionsProperty -> ValueList Text
principal :: PrincipalPermissionsProperty -> DataLakePrincipalProperty
haddock_workaround_ :: ()
permissions :: ValueList Text
principal :: DataLakePrincipalProperty
..}
    = PrincipalPermissionsProperty {permissions :: ValueList Text
permissions = PropertyType "Permissions" PrincipalPermissionsProperty
ValueList Text
newValue, ()
DataLakePrincipalProperty
haddock_workaround_ :: ()
principal :: DataLakePrincipalProperty
haddock_workaround_ :: ()
principal :: DataLakePrincipalProperty
..}
instance Property "Principal" PrincipalPermissionsProperty where
  type PropertyType "Principal" PrincipalPermissionsProperty = DataLakePrincipalProperty
  set :: PropertyType "Principal" PrincipalPermissionsProperty
-> PrincipalPermissionsProperty -> PrincipalPermissionsProperty
set PropertyType "Principal" PrincipalPermissionsProperty
newValue PrincipalPermissionsProperty {()
ValueList Text
DataLakePrincipalProperty
haddock_workaround_ :: PrincipalPermissionsProperty -> ()
permissions :: PrincipalPermissionsProperty -> ValueList Text
principal :: PrincipalPermissionsProperty -> DataLakePrincipalProperty
haddock_workaround_ :: ()
permissions :: ValueList Text
principal :: DataLakePrincipalProperty
..}
    = PrincipalPermissionsProperty {principal :: DataLakePrincipalProperty
principal = PropertyType "Principal" PrincipalPermissionsProperty
DataLakePrincipalProperty
newValue, ()
ValueList Text
haddock_workaround_ :: ()
permissions :: ValueList Text
haddock_workaround_ :: ()
permissions :: ValueList Text
..}