module Stratosphere.Backup.BackupPlan.AdvancedBackupSettingResourceTypeProperty (
        AdvancedBackupSettingResourceTypeProperty(..),
        mkAdvancedBackupSettingResourceTypeProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AdvancedBackupSettingResourceTypeProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-advancedbackupsettingresourcetype.html>
    AdvancedBackupSettingResourceTypeProperty {AdvancedBackupSettingResourceTypeProperty -> ()
haddock_workaround_ :: (),
                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-advancedbackupsettingresourcetype.html#cfn-backup-backupplan-advancedbackupsettingresourcetype-backupoptions>
                                               AdvancedBackupSettingResourceTypeProperty -> Object
backupOptions :: JSON.Object,
                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-advancedbackupsettingresourcetype.html#cfn-backup-backupplan-advancedbackupsettingresourcetype-resourcetype>
                                               AdvancedBackupSettingResourceTypeProperty -> Value Text
resourceType :: (Value Prelude.Text)}
  deriving stock (AdvancedBackupSettingResourceTypeProperty
-> AdvancedBackupSettingResourceTypeProperty -> Bool
(AdvancedBackupSettingResourceTypeProperty
 -> AdvancedBackupSettingResourceTypeProperty -> Bool)
-> (AdvancedBackupSettingResourceTypeProperty
    -> AdvancedBackupSettingResourceTypeProperty -> Bool)
-> Eq AdvancedBackupSettingResourceTypeProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AdvancedBackupSettingResourceTypeProperty
-> AdvancedBackupSettingResourceTypeProperty -> Bool
== :: AdvancedBackupSettingResourceTypeProperty
-> AdvancedBackupSettingResourceTypeProperty -> Bool
$c/= :: AdvancedBackupSettingResourceTypeProperty
-> AdvancedBackupSettingResourceTypeProperty -> Bool
/= :: AdvancedBackupSettingResourceTypeProperty
-> AdvancedBackupSettingResourceTypeProperty -> Bool
Prelude.Eq, Int -> AdvancedBackupSettingResourceTypeProperty -> ShowS
[AdvancedBackupSettingResourceTypeProperty] -> ShowS
AdvancedBackupSettingResourceTypeProperty -> String
(Int -> AdvancedBackupSettingResourceTypeProperty -> ShowS)
-> (AdvancedBackupSettingResourceTypeProperty -> String)
-> ([AdvancedBackupSettingResourceTypeProperty] -> ShowS)
-> Show AdvancedBackupSettingResourceTypeProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AdvancedBackupSettingResourceTypeProperty -> ShowS
showsPrec :: Int -> AdvancedBackupSettingResourceTypeProperty -> ShowS
$cshow :: AdvancedBackupSettingResourceTypeProperty -> String
show :: AdvancedBackupSettingResourceTypeProperty -> String
$cshowList :: [AdvancedBackupSettingResourceTypeProperty] -> ShowS
showList :: [AdvancedBackupSettingResourceTypeProperty] -> ShowS
Prelude.Show)
mkAdvancedBackupSettingResourceTypeProperty ::
  JSON.Object
  -> Value Prelude.Text -> AdvancedBackupSettingResourceTypeProperty
mkAdvancedBackupSettingResourceTypeProperty :: Object -> Value Text -> AdvancedBackupSettingResourceTypeProperty
mkAdvancedBackupSettingResourceTypeProperty
  Object
backupOptions
  Value Text
resourceType
  = AdvancedBackupSettingResourceTypeProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), backupOptions :: Object
backupOptions = Object
backupOptions,
       resourceType :: Value Text
resourceType = Value Text
resourceType}
instance ToResourceProperties AdvancedBackupSettingResourceTypeProperty where
  toResourceProperties :: AdvancedBackupSettingResourceTypeProperty -> ResourceProperties
toResourceProperties AdvancedBackupSettingResourceTypeProperty {()
Object
Value Text
haddock_workaround_ :: AdvancedBackupSettingResourceTypeProperty -> ()
backupOptions :: AdvancedBackupSettingResourceTypeProperty -> Object
resourceType :: AdvancedBackupSettingResourceTypeProperty -> Value Text
haddock_workaround_ :: ()
backupOptions :: Object
resourceType :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Backup::BackupPlan.AdvancedBackupSettingResourceType",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"BackupOptions" Key -> Object -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Object
backupOptions,
                       Key
"ResourceType" 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
resourceType]}
instance JSON.ToJSON AdvancedBackupSettingResourceTypeProperty where
  toJSON :: AdvancedBackupSettingResourceTypeProperty -> Value
toJSON AdvancedBackupSettingResourceTypeProperty {()
Object
Value Text
haddock_workaround_ :: AdvancedBackupSettingResourceTypeProperty -> ()
backupOptions :: AdvancedBackupSettingResourceTypeProperty -> Object
resourceType :: AdvancedBackupSettingResourceTypeProperty -> Value Text
haddock_workaround_ :: ()
backupOptions :: Object
resourceType :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"BackupOptions" Key -> Object -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Object
backupOptions,
         Key
"ResourceType" 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
resourceType]
instance Property "BackupOptions" AdvancedBackupSettingResourceTypeProperty where
  type PropertyType "BackupOptions" AdvancedBackupSettingResourceTypeProperty = JSON.Object
  set :: PropertyType
  "BackupOptions" AdvancedBackupSettingResourceTypeProperty
-> AdvancedBackupSettingResourceTypeProperty
-> AdvancedBackupSettingResourceTypeProperty
set PropertyType
  "BackupOptions" AdvancedBackupSettingResourceTypeProperty
newValue AdvancedBackupSettingResourceTypeProperty {()
Object
Value Text
haddock_workaround_ :: AdvancedBackupSettingResourceTypeProperty -> ()
backupOptions :: AdvancedBackupSettingResourceTypeProperty -> Object
resourceType :: AdvancedBackupSettingResourceTypeProperty -> Value Text
haddock_workaround_ :: ()
backupOptions :: Object
resourceType :: Value Text
..}
    = AdvancedBackupSettingResourceTypeProperty
        {backupOptions :: Object
backupOptions = Object
PropertyType
  "BackupOptions" AdvancedBackupSettingResourceTypeProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
resourceType :: Value Text
haddock_workaround_ :: ()
resourceType :: Value Text
..}
instance Property "ResourceType" AdvancedBackupSettingResourceTypeProperty where
  type PropertyType "ResourceType" AdvancedBackupSettingResourceTypeProperty = Value Prelude.Text
  set :: PropertyType
  "ResourceType" AdvancedBackupSettingResourceTypeProperty
-> AdvancedBackupSettingResourceTypeProperty
-> AdvancedBackupSettingResourceTypeProperty
set PropertyType
  "ResourceType" AdvancedBackupSettingResourceTypeProperty
newValue AdvancedBackupSettingResourceTypeProperty {()
Object
Value Text
haddock_workaround_ :: AdvancedBackupSettingResourceTypeProperty -> ()
backupOptions :: AdvancedBackupSettingResourceTypeProperty -> Object
resourceType :: AdvancedBackupSettingResourceTypeProperty -> Value Text
haddock_workaround_ :: ()
backupOptions :: Object
resourceType :: Value Text
..}
    = AdvancedBackupSettingResourceTypeProperty
        {resourceType :: Value Text
resourceType = PropertyType
  "ResourceType" AdvancedBackupSettingResourceTypeProperty
Value Text
newValue, ()
Object
haddock_workaround_ :: ()
backupOptions :: Object
haddock_workaround_ :: ()
backupOptions :: Object
..}