module Stratosphere.Inspector.AssessmentTemplate (
        AssessmentTemplate(..), mkAssessmentTemplate
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data AssessmentTemplate
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html>
    AssessmentTemplate {AssessmentTemplate -> ()
haddock_workaround_ :: (),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-assessmenttargetarn>
                        AssessmentTemplate -> Value Text
assessmentTargetArn :: (Value Prelude.Text),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-assessmenttemplatename>
                        AssessmentTemplate -> Maybe (Value Text)
assessmentTemplateName :: (Prelude.Maybe (Value Prelude.Text)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-durationinseconds>
                        AssessmentTemplate -> Value Integer
durationInSeconds :: (Value Prelude.Integer),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-rulespackagearns>
                        AssessmentTemplate -> ValueList Text
rulesPackageArns :: (ValueList Prelude.Text),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-userattributesforfindings>
                        AssessmentTemplate -> Maybe [Tag]
userAttributesForFindings :: (Prelude.Maybe [Tag])}
  deriving stock (AssessmentTemplate -> AssessmentTemplate -> Bool
(AssessmentTemplate -> AssessmentTemplate -> Bool)
-> (AssessmentTemplate -> AssessmentTemplate -> Bool)
-> Eq AssessmentTemplate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AssessmentTemplate -> AssessmentTemplate -> Bool
== :: AssessmentTemplate -> AssessmentTemplate -> Bool
$c/= :: AssessmentTemplate -> AssessmentTemplate -> Bool
/= :: AssessmentTemplate -> AssessmentTemplate -> Bool
Prelude.Eq, Int -> AssessmentTemplate -> ShowS
[AssessmentTemplate] -> ShowS
AssessmentTemplate -> String
(Int -> AssessmentTemplate -> ShowS)
-> (AssessmentTemplate -> String)
-> ([AssessmentTemplate] -> ShowS)
-> Show AssessmentTemplate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AssessmentTemplate -> ShowS
showsPrec :: Int -> AssessmentTemplate -> ShowS
$cshow :: AssessmentTemplate -> String
show :: AssessmentTemplate -> String
$cshowList :: [AssessmentTemplate] -> ShowS
showList :: [AssessmentTemplate] -> ShowS
Prelude.Show)
mkAssessmentTemplate ::
  Value Prelude.Text
  -> Value Prelude.Integer
     -> ValueList Prelude.Text -> AssessmentTemplate
mkAssessmentTemplate :: Value Text -> Value Integer -> ValueList Text -> AssessmentTemplate
mkAssessmentTemplate
  Value Text
assessmentTargetArn
  Value Integer
durationInSeconds
  ValueList Text
rulesPackageArns
  = AssessmentTemplate
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       assessmentTargetArn :: Value Text
assessmentTargetArn = Value Text
assessmentTargetArn,
       durationInSeconds :: Value Integer
durationInSeconds = Value Integer
durationInSeconds,
       rulesPackageArns :: ValueList Text
rulesPackageArns = ValueList Text
rulesPackageArns,
       assessmentTemplateName :: Maybe (Value Text)
assessmentTemplateName = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing,
       userAttributesForFindings :: Maybe [Tag]
userAttributesForFindings = Maybe [Tag]
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties AssessmentTemplate where
  toResourceProperties :: AssessmentTemplate -> ResourceProperties
toResourceProperties AssessmentTemplate {Maybe [Tag]
Maybe (Value Text)
()
ValueList Text
Value Integer
Value Text
haddock_workaround_ :: AssessmentTemplate -> ()
assessmentTargetArn :: AssessmentTemplate -> Value Text
assessmentTemplateName :: AssessmentTemplate -> Maybe (Value Text)
durationInSeconds :: AssessmentTemplate -> Value Integer
rulesPackageArns :: AssessmentTemplate -> ValueList Text
userAttributesForFindings :: AssessmentTemplate -> Maybe [Tag]
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Inspector::AssessmentTemplate",
         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
"AssessmentTargetArn" 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
assessmentTargetArn,
                            Key
"DurationInSeconds" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
durationInSeconds,
                            Key
"RulesPackageArns" 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
rulesPackageArns]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [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..=) Key
"AssessmentTemplateName"
                                 (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
assessmentTemplateName,
                               Key -> [Tag] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"UserAttributesForFindings"
                                 ([Tag] -> (Key, Value)) -> Maybe [Tag] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Tag]
userAttributesForFindings]))}
instance JSON.ToJSON AssessmentTemplate where
  toJSON :: AssessmentTemplate -> Value
toJSON AssessmentTemplate {Maybe [Tag]
Maybe (Value Text)
()
ValueList Text
Value Integer
Value Text
haddock_workaround_ :: AssessmentTemplate -> ()
assessmentTargetArn :: AssessmentTemplate -> Value Text
assessmentTemplateName :: AssessmentTemplate -> Maybe (Value Text)
durationInSeconds :: AssessmentTemplate -> Value Integer
rulesPackageArns :: AssessmentTemplate -> ValueList Text
userAttributesForFindings :: AssessmentTemplate -> Maybe [Tag]
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
..}
    = [(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
"AssessmentTargetArn" 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
assessmentTargetArn,
               Key
"DurationInSeconds" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
durationInSeconds,
               Key
"RulesPackageArns" 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
rulesPackageArns]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [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..=) Key
"AssessmentTemplateName"
                    (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
assessmentTemplateName,
                  Key -> [Tag] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"UserAttributesForFindings"
                    ([Tag] -> (Key, Value)) -> Maybe [Tag] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Tag]
userAttributesForFindings])))
instance Property "AssessmentTargetArn" AssessmentTemplate where
  type PropertyType "AssessmentTargetArn" AssessmentTemplate = Value Prelude.Text
  set :: PropertyType "AssessmentTargetArn" AssessmentTemplate
-> AssessmentTemplate -> AssessmentTemplate
set PropertyType "AssessmentTargetArn" AssessmentTemplate
newValue AssessmentTemplate {Maybe [Tag]
Maybe (Value Text)
()
ValueList Text
Value Integer
Value Text
haddock_workaround_ :: AssessmentTemplate -> ()
assessmentTargetArn :: AssessmentTemplate -> Value Text
assessmentTemplateName :: AssessmentTemplate -> Maybe (Value Text)
durationInSeconds :: AssessmentTemplate -> Value Integer
rulesPackageArns :: AssessmentTemplate -> ValueList Text
userAttributesForFindings :: AssessmentTemplate -> Maybe [Tag]
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
..}
    = AssessmentTemplate {assessmentTargetArn :: Value Text
assessmentTargetArn = PropertyType "AssessmentTargetArn" AssessmentTemplate
Value Text
newValue, Maybe [Tag]
Maybe (Value Text)
()
ValueList Text
Value Integer
haddock_workaround_ :: ()
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
haddock_workaround_ :: ()
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
..}
instance Property "AssessmentTemplateName" AssessmentTemplate where
  type PropertyType "AssessmentTemplateName" AssessmentTemplate = Value Prelude.Text
  set :: PropertyType "AssessmentTemplateName" AssessmentTemplate
-> AssessmentTemplate -> AssessmentTemplate
set PropertyType "AssessmentTemplateName" AssessmentTemplate
newValue AssessmentTemplate {Maybe [Tag]
Maybe (Value Text)
()
ValueList Text
Value Integer
Value Text
haddock_workaround_ :: AssessmentTemplate -> ()
assessmentTargetArn :: AssessmentTemplate -> Value Text
assessmentTemplateName :: AssessmentTemplate -> Maybe (Value Text)
durationInSeconds :: AssessmentTemplate -> Value Integer
rulesPackageArns :: AssessmentTemplate -> ValueList Text
userAttributesForFindings :: AssessmentTemplate -> Maybe [Tag]
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
..}
    = AssessmentTemplate
        {assessmentTemplateName :: Maybe (Value Text)
assessmentTemplateName = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "AssessmentTemplateName" AssessmentTemplate
Value Text
newValue, Maybe [Tag]
()
ValueList Text
Value Integer
Value Text
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
..}
instance Property "DurationInSeconds" AssessmentTemplate where
  type PropertyType "DurationInSeconds" AssessmentTemplate = Value Prelude.Integer
  set :: PropertyType "DurationInSeconds" AssessmentTemplate
-> AssessmentTemplate -> AssessmentTemplate
set PropertyType "DurationInSeconds" AssessmentTemplate
newValue AssessmentTemplate {Maybe [Tag]
Maybe (Value Text)
()
ValueList Text
Value Integer
Value Text
haddock_workaround_ :: AssessmentTemplate -> ()
assessmentTargetArn :: AssessmentTemplate -> Value Text
assessmentTemplateName :: AssessmentTemplate -> Maybe (Value Text)
durationInSeconds :: AssessmentTemplate -> Value Integer
rulesPackageArns :: AssessmentTemplate -> ValueList Text
userAttributesForFindings :: AssessmentTemplate -> Maybe [Tag]
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
..}
    = AssessmentTemplate {durationInSeconds :: Value Integer
durationInSeconds = PropertyType "DurationInSeconds" AssessmentTemplate
Value Integer
newValue, Maybe [Tag]
Maybe (Value Text)
()
ValueList Text
Value Text
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
..}
instance Property "RulesPackageArns" AssessmentTemplate where
  type PropertyType "RulesPackageArns" AssessmentTemplate = ValueList Prelude.Text
  set :: PropertyType "RulesPackageArns" AssessmentTemplate
-> AssessmentTemplate -> AssessmentTemplate
set PropertyType "RulesPackageArns" AssessmentTemplate
newValue AssessmentTemplate {Maybe [Tag]
Maybe (Value Text)
()
ValueList Text
Value Integer
Value Text
haddock_workaround_ :: AssessmentTemplate -> ()
assessmentTargetArn :: AssessmentTemplate -> Value Text
assessmentTemplateName :: AssessmentTemplate -> Maybe (Value Text)
durationInSeconds :: AssessmentTemplate -> Value Integer
rulesPackageArns :: AssessmentTemplate -> ValueList Text
userAttributesForFindings :: AssessmentTemplate -> Maybe [Tag]
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
..}
    = AssessmentTemplate {rulesPackageArns :: ValueList Text
rulesPackageArns = PropertyType "RulesPackageArns" AssessmentTemplate
ValueList Text
newValue, Maybe [Tag]
Maybe (Value Text)
()
Value Integer
Value Text
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
userAttributesForFindings :: Maybe [Tag]
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
userAttributesForFindings :: Maybe [Tag]
..}
instance Property "UserAttributesForFindings" AssessmentTemplate where
  type PropertyType "UserAttributesForFindings" AssessmentTemplate = [Tag]
  set :: PropertyType "UserAttributesForFindings" AssessmentTemplate
-> AssessmentTemplate -> AssessmentTemplate
set PropertyType "UserAttributesForFindings" AssessmentTemplate
newValue AssessmentTemplate {Maybe [Tag]
Maybe (Value Text)
()
ValueList Text
Value Integer
Value Text
haddock_workaround_ :: AssessmentTemplate -> ()
assessmentTargetArn :: AssessmentTemplate -> Value Text
assessmentTemplateName :: AssessmentTemplate -> Maybe (Value Text)
durationInSeconds :: AssessmentTemplate -> Value Integer
rulesPackageArns :: AssessmentTemplate -> ValueList Text
userAttributesForFindings :: AssessmentTemplate -> Maybe [Tag]
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
userAttributesForFindings :: Maybe [Tag]
..}
    = AssessmentTemplate
        {userAttributesForFindings :: Maybe [Tag]
userAttributesForFindings = [Tag] -> Maybe [Tag]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [Tag]
PropertyType "UserAttributesForFindings" AssessmentTemplate
newValue, Maybe (Value Text)
()
ValueList Text
Value Integer
Value Text
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
haddock_workaround_ :: ()
assessmentTargetArn :: Value Text
assessmentTemplateName :: Maybe (Value Text)
durationInSeconds :: Value Integer
rulesPackageArns :: ValueList Text
..}