module Stratosphere.LakeFormation.PrincipalPermissions.DataLocationResourceProperty (
        DataLocationResourceProperty(..), mkDataLocationResourceProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data DataLocationResourceProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-principalpermissions-datalocationresource.html>
    DataLocationResourceProperty {DataLocationResourceProperty -> ()
haddock_workaround_ :: (),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-principalpermissions-datalocationresource.html#cfn-lakeformation-principalpermissions-datalocationresource-catalogid>
                                  DataLocationResourceProperty -> Value Text
catalogId :: (Value Prelude.Text),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-principalpermissions-datalocationresource.html#cfn-lakeformation-principalpermissions-datalocationresource-resourcearn>
                                  DataLocationResourceProperty -> Value Text
resourceArn :: (Value Prelude.Text)}
  deriving stock (DataLocationResourceProperty
-> DataLocationResourceProperty -> Bool
(DataLocationResourceProperty
 -> DataLocationResourceProperty -> Bool)
-> (DataLocationResourceProperty
    -> DataLocationResourceProperty -> Bool)
-> Eq DataLocationResourceProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DataLocationResourceProperty
-> DataLocationResourceProperty -> Bool
== :: DataLocationResourceProperty
-> DataLocationResourceProperty -> Bool
$c/= :: DataLocationResourceProperty
-> DataLocationResourceProperty -> Bool
/= :: DataLocationResourceProperty
-> DataLocationResourceProperty -> Bool
Prelude.Eq, Int -> DataLocationResourceProperty -> ShowS
[DataLocationResourceProperty] -> ShowS
DataLocationResourceProperty -> String
(Int -> DataLocationResourceProperty -> ShowS)
-> (DataLocationResourceProperty -> String)
-> ([DataLocationResourceProperty] -> ShowS)
-> Show DataLocationResourceProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DataLocationResourceProperty -> ShowS
showsPrec :: Int -> DataLocationResourceProperty -> ShowS
$cshow :: DataLocationResourceProperty -> String
show :: DataLocationResourceProperty -> String
$cshowList :: [DataLocationResourceProperty] -> ShowS
showList :: [DataLocationResourceProperty] -> ShowS
Prelude.Show)
mkDataLocationResourceProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> DataLocationResourceProperty
mkDataLocationResourceProperty :: Value Text -> Value Text -> DataLocationResourceProperty
mkDataLocationResourceProperty Value Text
catalogId Value Text
resourceArn
  = DataLocationResourceProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), catalogId :: Value Text
catalogId = Value Text
catalogId,
       resourceArn :: Value Text
resourceArn = Value Text
resourceArn}
instance ToResourceProperties DataLocationResourceProperty where
  toResourceProperties :: DataLocationResourceProperty -> ResourceProperties
toResourceProperties DataLocationResourceProperty {()
Value Text
haddock_workaround_ :: DataLocationResourceProperty -> ()
catalogId :: DataLocationResourceProperty -> Value Text
resourceArn :: DataLocationResourceProperty -> Value Text
haddock_workaround_ :: ()
catalogId :: Value Text
resourceArn :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::LakeFormation::PrincipalPermissions.DataLocationResource",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"CatalogId" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
catalogId,
                       Key
"ResourceArn" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
resourceArn]}
instance JSON.ToJSON DataLocationResourceProperty where
  toJSON :: DataLocationResourceProperty -> Value
toJSON DataLocationResourceProperty {()
Value Text
haddock_workaround_ :: DataLocationResourceProperty -> ()
catalogId :: DataLocationResourceProperty -> Value Text
resourceArn :: DataLocationResourceProperty -> Value Text
haddock_workaround_ :: ()
catalogId :: Value Text
resourceArn :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"CatalogId" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
catalogId, Key
"ResourceArn" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
resourceArn]
instance Property "CatalogId" DataLocationResourceProperty where
  type PropertyType "CatalogId" DataLocationResourceProperty = Value Prelude.Text
  set :: PropertyType "CatalogId" DataLocationResourceProperty
-> DataLocationResourceProperty -> DataLocationResourceProperty
set PropertyType "CatalogId" DataLocationResourceProperty
newValue DataLocationResourceProperty {()
Value Text
haddock_workaround_ :: DataLocationResourceProperty -> ()
catalogId :: DataLocationResourceProperty -> Value Text
resourceArn :: DataLocationResourceProperty -> Value Text
haddock_workaround_ :: ()
catalogId :: Value Text
resourceArn :: Value Text
..}
    = DataLocationResourceProperty {catalogId :: Value Text
catalogId = PropertyType "CatalogId" DataLocationResourceProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
resourceArn :: Value Text
haddock_workaround_ :: ()
resourceArn :: Value Text
..}
instance Property "ResourceArn" DataLocationResourceProperty where
  type PropertyType "ResourceArn" DataLocationResourceProperty = Value Prelude.Text
  set :: PropertyType "ResourceArn" DataLocationResourceProperty
-> DataLocationResourceProperty -> DataLocationResourceProperty
set PropertyType "ResourceArn" DataLocationResourceProperty
newValue DataLocationResourceProperty {()
Value Text
haddock_workaround_ :: DataLocationResourceProperty -> ()
catalogId :: DataLocationResourceProperty -> Value Text
resourceArn :: DataLocationResourceProperty -> Value Text
haddock_workaround_ :: ()
catalogId :: Value Text
resourceArn :: Value Text
..}
    = DataLocationResourceProperty {resourceArn :: Value Text
resourceArn = PropertyType "ResourceArn" DataLocationResourceProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
catalogId :: Value Text
haddock_workaround_ :: ()
catalogId :: Value Text
..}