module Stratosphere.Backup.ReportPlan.ReportSettingProperty (
        ReportSettingProperty(..), mkReportSettingProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ReportSettingProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-reportplan-reportsetting.html>
    ReportSettingProperty {ReportSettingProperty -> ()
haddock_workaround_ :: (),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-reportplan-reportsetting.html#cfn-backup-reportplan-reportsetting-accounts>
                           ReportSettingProperty -> Maybe (ValueList Text)
accounts :: (Prelude.Maybe (ValueList Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-reportplan-reportsetting.html#cfn-backup-reportplan-reportsetting-frameworkarns>
                           ReportSettingProperty -> Maybe (ValueList Text)
frameworkArns :: (Prelude.Maybe (ValueList Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-reportplan-reportsetting.html#cfn-backup-reportplan-reportsetting-organizationunits>
                           ReportSettingProperty -> Maybe (ValueList Text)
organizationUnits :: (Prelude.Maybe (ValueList Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-reportplan-reportsetting.html#cfn-backup-reportplan-reportsetting-regions>
                           ReportSettingProperty -> Maybe (ValueList Text)
regions :: (Prelude.Maybe (ValueList Prelude.Text)),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-reportplan-reportsetting.html#cfn-backup-reportplan-reportsetting-reporttemplate>
                           ReportSettingProperty -> Value Text
reportTemplate :: (Value Prelude.Text)}
  deriving stock (ReportSettingProperty -> ReportSettingProperty -> Bool
(ReportSettingProperty -> ReportSettingProperty -> Bool)
-> (ReportSettingProperty -> ReportSettingProperty -> Bool)
-> Eq ReportSettingProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ReportSettingProperty -> ReportSettingProperty -> Bool
== :: ReportSettingProperty -> ReportSettingProperty -> Bool
$c/= :: ReportSettingProperty -> ReportSettingProperty -> Bool
/= :: ReportSettingProperty -> ReportSettingProperty -> Bool
Prelude.Eq, Int -> ReportSettingProperty -> ShowS
[ReportSettingProperty] -> ShowS
ReportSettingProperty -> String
(Int -> ReportSettingProperty -> ShowS)
-> (ReportSettingProperty -> String)
-> ([ReportSettingProperty] -> ShowS)
-> Show ReportSettingProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ReportSettingProperty -> ShowS
showsPrec :: Int -> ReportSettingProperty -> ShowS
$cshow :: ReportSettingProperty -> String
show :: ReportSettingProperty -> String
$cshowList :: [ReportSettingProperty] -> ShowS
showList :: [ReportSettingProperty] -> ShowS
Prelude.Show)
mkReportSettingProperty ::
  Value Prelude.Text -> ReportSettingProperty
mkReportSettingProperty :: Value Text -> ReportSettingProperty
mkReportSettingProperty Value Text
reportTemplate
  = ReportSettingProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), reportTemplate :: Value Text
reportTemplate = Value Text
reportTemplate,
       accounts :: Maybe (ValueList Text)
accounts = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing, frameworkArns :: Maybe (ValueList Text)
frameworkArns = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing,
       organizationUnits :: Maybe (ValueList Text)
organizationUnits = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing, regions :: Maybe (ValueList Text)
regions = Maybe (ValueList Text)
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties ReportSettingProperty where
  toResourceProperties :: ReportSettingProperty -> ResourceProperties
toResourceProperties ReportSettingProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ReportSettingProperty -> ()
accounts :: ReportSettingProperty -> Maybe (ValueList Text)
frameworkArns :: ReportSettingProperty -> Maybe (ValueList Text)
organizationUnits :: ReportSettingProperty -> Maybe (ValueList Text)
regions :: ReportSettingProperty -> Maybe (ValueList Text)
reportTemplate :: ReportSettingProperty -> Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Backup::ReportPlan.ReportSetting",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"ReportTemplate" 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
reportTemplate]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [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..=) Key
"Accounts" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
accounts,
                               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..=) Key
"FrameworkArns" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
frameworkArns,
                               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..=) Key
"OrganizationUnits" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
organizationUnits,
                               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..=) Key
"Regions" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
regions]))}
instance JSON.ToJSON ReportSettingProperty where
  toJSON :: ReportSettingProperty -> Value
toJSON ReportSettingProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ReportSettingProperty -> ()
accounts :: ReportSettingProperty -> Maybe (ValueList Text)
frameworkArns :: ReportSettingProperty -> Maybe (ValueList Text)
organizationUnits :: ReportSettingProperty -> Maybe (ValueList Text)
regions :: ReportSettingProperty -> Maybe (ValueList Text)
reportTemplate :: ReportSettingProperty -> Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"ReportTemplate" 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
reportTemplate]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [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..=) Key
"Accounts" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
accounts,
                  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..=) Key
"FrameworkArns" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
frameworkArns,
                  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..=) Key
"OrganizationUnits" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
organizationUnits,
                  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..=) Key
"Regions" (ValueList Text -> (Key, Value))
-> Maybe (ValueList Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (ValueList Text)
regions])))
instance Property "Accounts" ReportSettingProperty where
  type PropertyType "Accounts" ReportSettingProperty = ValueList Prelude.Text
  set :: PropertyType "Accounts" ReportSettingProperty
-> ReportSettingProperty -> ReportSettingProperty
set PropertyType "Accounts" ReportSettingProperty
newValue ReportSettingProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ReportSettingProperty -> ()
accounts :: ReportSettingProperty -> Maybe (ValueList Text)
frameworkArns :: ReportSettingProperty -> Maybe (ValueList Text)
organizationUnits :: ReportSettingProperty -> Maybe (ValueList Text)
regions :: ReportSettingProperty -> Maybe (ValueList Text)
reportTemplate :: ReportSettingProperty -> Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
..}
    = ReportSettingProperty {accounts :: Maybe (ValueList Text)
accounts = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Accounts" ReportSettingProperty
ValueList Text
newValue, Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ()
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
haddock_workaround_ :: ()
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
..}
instance Property "FrameworkArns" ReportSettingProperty where
  type PropertyType "FrameworkArns" ReportSettingProperty = ValueList Prelude.Text
  set :: PropertyType "FrameworkArns" ReportSettingProperty
-> ReportSettingProperty -> ReportSettingProperty
set PropertyType "FrameworkArns" ReportSettingProperty
newValue ReportSettingProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ReportSettingProperty -> ()
accounts :: ReportSettingProperty -> Maybe (ValueList Text)
frameworkArns :: ReportSettingProperty -> Maybe (ValueList Text)
organizationUnits :: ReportSettingProperty -> Maybe (ValueList Text)
regions :: ReportSettingProperty -> Maybe (ValueList Text)
reportTemplate :: ReportSettingProperty -> Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
..}
    = ReportSettingProperty {frameworkArns :: Maybe (ValueList Text)
frameworkArns = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "FrameworkArns" ReportSettingProperty
ValueList Text
newValue, Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
..}
instance Property "OrganizationUnits" ReportSettingProperty where
  type PropertyType "OrganizationUnits" ReportSettingProperty = ValueList Prelude.Text
  set :: PropertyType "OrganizationUnits" ReportSettingProperty
-> ReportSettingProperty -> ReportSettingProperty
set PropertyType "OrganizationUnits" ReportSettingProperty
newValue ReportSettingProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ReportSettingProperty -> ()
accounts :: ReportSettingProperty -> Maybe (ValueList Text)
frameworkArns :: ReportSettingProperty -> Maybe (ValueList Text)
organizationUnits :: ReportSettingProperty -> Maybe (ValueList Text)
regions :: ReportSettingProperty -> Maybe (ValueList Text)
reportTemplate :: ReportSettingProperty -> Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
..}
    = ReportSettingProperty
        {organizationUnits :: Maybe (ValueList Text)
organizationUnits = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "OrganizationUnits" ReportSettingProperty
ValueList Text
newValue, Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
..}
instance Property "Regions" ReportSettingProperty where
  type PropertyType "Regions" ReportSettingProperty = ValueList Prelude.Text
  set :: PropertyType "Regions" ReportSettingProperty
-> ReportSettingProperty -> ReportSettingProperty
set PropertyType "Regions" ReportSettingProperty
newValue ReportSettingProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ReportSettingProperty -> ()
accounts :: ReportSettingProperty -> Maybe (ValueList Text)
frameworkArns :: ReportSettingProperty -> Maybe (ValueList Text)
organizationUnits :: ReportSettingProperty -> Maybe (ValueList Text)
regions :: ReportSettingProperty -> Maybe (ValueList Text)
reportTemplate :: ReportSettingProperty -> Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
..}
    = ReportSettingProperty {regions :: Maybe (ValueList Text)
regions = ValueList Text -> Maybe (ValueList Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Regions" ReportSettingProperty
ValueList Text
newValue, Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
reportTemplate :: Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
reportTemplate :: Value Text
..}
instance Property "ReportTemplate" ReportSettingProperty where
  type PropertyType "ReportTemplate" ReportSettingProperty = Value Prelude.Text
  set :: PropertyType "ReportTemplate" ReportSettingProperty
-> ReportSettingProperty -> ReportSettingProperty
set PropertyType "ReportTemplate" ReportSettingProperty
newValue ReportSettingProperty {Maybe (ValueList Text)
()
Value Text
haddock_workaround_ :: ReportSettingProperty -> ()
accounts :: ReportSettingProperty -> Maybe (ValueList Text)
frameworkArns :: ReportSettingProperty -> Maybe (ValueList Text)
organizationUnits :: ReportSettingProperty -> Maybe (ValueList Text)
regions :: ReportSettingProperty -> Maybe (ValueList Text)
reportTemplate :: ReportSettingProperty -> Value Text
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
reportTemplate :: Value Text
..}
    = ReportSettingProperty {reportTemplate :: Value Text
reportTemplate = PropertyType "ReportTemplate" ReportSettingProperty
Value Text
newValue, Maybe (ValueList Text)
()
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
haddock_workaround_ :: ()
accounts :: Maybe (ValueList Text)
frameworkArns :: Maybe (ValueList Text)
organizationUnits :: Maybe (ValueList Text)
regions :: Maybe (ValueList Text)
..}