module Stratosphere.Greengrass.ResourceDefinitionVersion.ResourceDownloadOwnerSettingProperty (
        ResourceDownloadOwnerSettingProperty(..),
        mkResourceDownloadOwnerSettingProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ResourceDownloadOwnerSettingProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html>
    ResourceDownloadOwnerSettingProperty {ResourceDownloadOwnerSettingProperty -> ()
haddock_workaround_ :: (),
                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html#cfn-greengrass-resourcedefinitionversion-resourcedownloadownersetting-groupowner>
                                          ResourceDownloadOwnerSettingProperty -> Value Text
groupOwner :: (Value Prelude.Text),
                                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html#cfn-greengrass-resourcedefinitionversion-resourcedownloadownersetting-grouppermission>
                                          ResourceDownloadOwnerSettingProperty -> Value Text
groupPermission :: (Value Prelude.Text)}
  deriving stock (ResourceDownloadOwnerSettingProperty
-> ResourceDownloadOwnerSettingProperty -> Bool
(ResourceDownloadOwnerSettingProperty
 -> ResourceDownloadOwnerSettingProperty -> Bool)
-> (ResourceDownloadOwnerSettingProperty
    -> ResourceDownloadOwnerSettingProperty -> Bool)
-> Eq ResourceDownloadOwnerSettingProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ResourceDownloadOwnerSettingProperty
-> ResourceDownloadOwnerSettingProperty -> Bool
== :: ResourceDownloadOwnerSettingProperty
-> ResourceDownloadOwnerSettingProperty -> Bool
$c/= :: ResourceDownloadOwnerSettingProperty
-> ResourceDownloadOwnerSettingProperty -> Bool
/= :: ResourceDownloadOwnerSettingProperty
-> ResourceDownloadOwnerSettingProperty -> Bool
Prelude.Eq, Int -> ResourceDownloadOwnerSettingProperty -> ShowS
[ResourceDownloadOwnerSettingProperty] -> ShowS
ResourceDownloadOwnerSettingProperty -> String
(Int -> ResourceDownloadOwnerSettingProperty -> ShowS)
-> (ResourceDownloadOwnerSettingProperty -> String)
-> ([ResourceDownloadOwnerSettingProperty] -> ShowS)
-> Show ResourceDownloadOwnerSettingProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ResourceDownloadOwnerSettingProperty -> ShowS
showsPrec :: Int -> ResourceDownloadOwnerSettingProperty -> ShowS
$cshow :: ResourceDownloadOwnerSettingProperty -> String
show :: ResourceDownloadOwnerSettingProperty -> String
$cshowList :: [ResourceDownloadOwnerSettingProperty] -> ShowS
showList :: [ResourceDownloadOwnerSettingProperty] -> ShowS
Prelude.Show)
mkResourceDownloadOwnerSettingProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> ResourceDownloadOwnerSettingProperty
mkResourceDownloadOwnerSettingProperty :: Value Text -> Value Text -> ResourceDownloadOwnerSettingProperty
mkResourceDownloadOwnerSettingProperty Value Text
groupOwner Value Text
groupPermission
  = ResourceDownloadOwnerSettingProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), groupOwner :: Value Text
groupOwner = Value Text
groupOwner,
       groupPermission :: Value Text
groupPermission = Value Text
groupPermission}
instance ToResourceProperties ResourceDownloadOwnerSettingProperty where
  toResourceProperties :: ResourceDownloadOwnerSettingProperty -> ResourceProperties
toResourceProperties ResourceDownloadOwnerSettingProperty {()
Value Text
haddock_workaround_ :: ResourceDownloadOwnerSettingProperty -> ()
groupOwner :: ResourceDownloadOwnerSettingProperty -> Value Text
groupPermission :: ResourceDownloadOwnerSettingProperty -> Value Text
haddock_workaround_ :: ()
groupOwner :: Value Text
groupPermission :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"GroupOwner" 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
groupOwner,
                       Key
"GroupPermission" 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
groupPermission]}
instance JSON.ToJSON ResourceDownloadOwnerSettingProperty where
  toJSON :: ResourceDownloadOwnerSettingProperty -> Value
toJSON ResourceDownloadOwnerSettingProperty {()
Value Text
haddock_workaround_ :: ResourceDownloadOwnerSettingProperty -> ()
groupOwner :: ResourceDownloadOwnerSettingProperty -> Value Text
groupPermission :: ResourceDownloadOwnerSettingProperty -> Value Text
haddock_workaround_ :: ()
groupOwner :: Value Text
groupPermission :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"GroupOwner" 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
groupOwner,
         Key
"GroupPermission" 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
groupPermission]
instance Property "GroupOwner" ResourceDownloadOwnerSettingProperty where
  type PropertyType "GroupOwner" ResourceDownloadOwnerSettingProperty = Value Prelude.Text
  set :: PropertyType "GroupOwner" ResourceDownloadOwnerSettingProperty
-> ResourceDownloadOwnerSettingProperty
-> ResourceDownloadOwnerSettingProperty
set PropertyType "GroupOwner" ResourceDownloadOwnerSettingProperty
newValue ResourceDownloadOwnerSettingProperty {()
Value Text
haddock_workaround_ :: ResourceDownloadOwnerSettingProperty -> ()
groupOwner :: ResourceDownloadOwnerSettingProperty -> Value Text
groupPermission :: ResourceDownloadOwnerSettingProperty -> Value Text
haddock_workaround_ :: ()
groupOwner :: Value Text
groupPermission :: Value Text
..}
    = ResourceDownloadOwnerSettingProperty {groupOwner :: Value Text
groupOwner = PropertyType "GroupOwner" ResourceDownloadOwnerSettingProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
groupPermission :: Value Text
haddock_workaround_ :: ()
groupPermission :: Value Text
..}
instance Property "GroupPermission" ResourceDownloadOwnerSettingProperty where
  type PropertyType "GroupPermission" ResourceDownloadOwnerSettingProperty = Value Prelude.Text
  set :: PropertyType "GroupPermission" ResourceDownloadOwnerSettingProperty
-> ResourceDownloadOwnerSettingProperty
-> ResourceDownloadOwnerSettingProperty
set PropertyType "GroupPermission" ResourceDownloadOwnerSettingProperty
newValue ResourceDownloadOwnerSettingProperty {()
Value Text
haddock_workaround_ :: ResourceDownloadOwnerSettingProperty -> ()
groupOwner :: ResourceDownloadOwnerSettingProperty -> Value Text
groupPermission :: ResourceDownloadOwnerSettingProperty -> Value Text
haddock_workaround_ :: ()
groupOwner :: Value Text
groupPermission :: Value Text
..}
    = ResourceDownloadOwnerSettingProperty
        {groupPermission :: Value Text
groupPermission = PropertyType "GroupPermission" ResourceDownloadOwnerSettingProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
groupOwner :: Value Text
haddock_workaround_ :: ()
groupOwner :: Value Text
..}