module Stratosphere.InspectorV2.CisScanConfiguration.CisTargetsProperty (
        CisTargetsProperty(..), mkCisTargetsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data CisTargetsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-cisscanconfiguration-cistargets.html>
    CisTargetsProperty {CisTargetsProperty -> ()
haddock_workaround_ :: (),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-cisscanconfiguration-cistargets.html#cfn-inspectorv2-cisscanconfiguration-cistargets-accountids>
                        CisTargetsProperty -> ValueList Text
accountIds :: (ValueList Prelude.Text),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-inspectorv2-cisscanconfiguration-cistargets.html#cfn-inspectorv2-cisscanconfiguration-cistargets-targetresourcetags>
                        CisTargetsProperty -> Object
targetResourceTags :: JSON.Object}
  deriving stock (CisTargetsProperty -> CisTargetsProperty -> Bool
(CisTargetsProperty -> CisTargetsProperty -> Bool)
-> (CisTargetsProperty -> CisTargetsProperty -> Bool)
-> Eq CisTargetsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CisTargetsProperty -> CisTargetsProperty -> Bool
== :: CisTargetsProperty -> CisTargetsProperty -> Bool
$c/= :: CisTargetsProperty -> CisTargetsProperty -> Bool
/= :: CisTargetsProperty -> CisTargetsProperty -> Bool
Prelude.Eq, Int -> CisTargetsProperty -> ShowS
[CisTargetsProperty] -> ShowS
CisTargetsProperty -> String
(Int -> CisTargetsProperty -> ShowS)
-> (CisTargetsProperty -> String)
-> ([CisTargetsProperty] -> ShowS)
-> Show CisTargetsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CisTargetsProperty -> ShowS
showsPrec :: Int -> CisTargetsProperty -> ShowS
$cshow :: CisTargetsProperty -> String
show :: CisTargetsProperty -> String
$cshowList :: [CisTargetsProperty] -> ShowS
showList :: [CisTargetsProperty] -> ShowS
Prelude.Show)
mkCisTargetsProperty ::
  ValueList Prelude.Text -> JSON.Object -> CisTargetsProperty
mkCisTargetsProperty :: ValueList Text -> Object -> CisTargetsProperty
mkCisTargetsProperty ValueList Text
accountIds Object
targetResourceTags
  = CisTargetsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), accountIds :: ValueList Text
accountIds = ValueList Text
accountIds,
       targetResourceTags :: Object
targetResourceTags = Object
targetResourceTags}
instance ToResourceProperties CisTargetsProperty where
  toResourceProperties :: CisTargetsProperty -> ResourceProperties
toResourceProperties CisTargetsProperty {()
Object
ValueList Text
haddock_workaround_ :: CisTargetsProperty -> ()
accountIds :: CisTargetsProperty -> ValueList Text
targetResourceTags :: CisTargetsProperty -> Object
haddock_workaround_ :: ()
accountIds :: ValueList Text
targetResourceTags :: Object
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::InspectorV2::CisScanConfiguration.CisTargets",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"AccountIds" 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
accountIds,
                       Key
"TargetResourceTags" 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
targetResourceTags]}
instance JSON.ToJSON CisTargetsProperty where
  toJSON :: CisTargetsProperty -> Value
toJSON CisTargetsProperty {()
Object
ValueList Text
haddock_workaround_ :: CisTargetsProperty -> ()
accountIds :: CisTargetsProperty -> ValueList Text
targetResourceTags :: CisTargetsProperty -> Object
haddock_workaround_ :: ()
accountIds :: ValueList Text
targetResourceTags :: Object
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"AccountIds" 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
accountIds,
         Key
"TargetResourceTags" 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
targetResourceTags]
instance Property "AccountIds" CisTargetsProperty where
  type PropertyType "AccountIds" CisTargetsProperty = ValueList Prelude.Text
  set :: PropertyType "AccountIds" CisTargetsProperty
-> CisTargetsProperty -> CisTargetsProperty
set PropertyType "AccountIds" CisTargetsProperty
newValue CisTargetsProperty {()
Object
ValueList Text
haddock_workaround_ :: CisTargetsProperty -> ()
accountIds :: CisTargetsProperty -> ValueList Text
targetResourceTags :: CisTargetsProperty -> Object
haddock_workaround_ :: ()
accountIds :: ValueList Text
targetResourceTags :: Object
..}
    = CisTargetsProperty {accountIds :: ValueList Text
accountIds = PropertyType "AccountIds" CisTargetsProperty
ValueList Text
newValue, ()
Object
haddock_workaround_ :: ()
targetResourceTags :: Object
haddock_workaround_ :: ()
targetResourceTags :: Object
..}
instance Property "TargetResourceTags" CisTargetsProperty where
  type PropertyType "TargetResourceTags" CisTargetsProperty = JSON.Object
  set :: PropertyType "TargetResourceTags" CisTargetsProperty
-> CisTargetsProperty -> CisTargetsProperty
set PropertyType "TargetResourceTags" CisTargetsProperty
newValue CisTargetsProperty {()
Object
ValueList Text
haddock_workaround_ :: CisTargetsProperty -> ()
accountIds :: CisTargetsProperty -> ValueList Text
targetResourceTags :: CisTargetsProperty -> Object
haddock_workaround_ :: ()
accountIds :: ValueList Text
targetResourceTags :: Object
..}
    = CisTargetsProperty {targetResourceTags :: Object
targetResourceTags = Object
PropertyType "TargetResourceTags" CisTargetsProperty
newValue, ()
ValueList Text
haddock_workaround_ :: ()
accountIds :: ValueList Text
haddock_workaround_ :: ()
accountIds :: ValueList Text
..}