packages feed

stratosphere-auditmanager-1.0.0: gen/Stratosphere/AuditManager/Assessment.hs

module Stratosphere.AuditManager.Assessment (
        module Exports, Assessment(..), mkAssessment
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.AWSAccountProperty as Exports
import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.AssessmentReportsDestinationProperty as Exports
import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.DelegationProperty as Exports
import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.RoleProperty as Exports
import {-# SOURCE #-} Stratosphere.AuditManager.Assessment.ScopeProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data Assessment
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html>
    Assessment {haddock_workaround_ :: (),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-assessmentreportsdestination>
                assessmentReportsDestination :: (Prelude.Maybe AssessmentReportsDestinationProperty),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-awsaccount>
                awsAccount :: (Prelude.Maybe AWSAccountProperty),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-delegations>
                delegations :: (Prelude.Maybe [DelegationProperty]),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-description>
                description :: (Prelude.Maybe (Value Prelude.Text)),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-frameworkid>
                frameworkId :: (Prelude.Maybe (Value Prelude.Text)),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-name>
                name :: (Prelude.Maybe (Value Prelude.Text)),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-roles>
                roles :: (Prelude.Maybe [RoleProperty]),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-scope>
                scope :: (Prelude.Maybe ScopeProperty),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-status>
                status :: (Prelude.Maybe (Value Prelude.Text)),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-tags>
                tags :: (Prelude.Maybe [Tag])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkAssessment :: Assessment
mkAssessment
  = Assessment
      {haddock_workaround_ = (),
       assessmentReportsDestination = Prelude.Nothing,
       awsAccount = Prelude.Nothing, delegations = Prelude.Nothing,
       description = Prelude.Nothing, frameworkId = Prelude.Nothing,
       name = Prelude.Nothing, roles = Prelude.Nothing,
       scope = Prelude.Nothing, status = Prelude.Nothing,
       tags = Prelude.Nothing}
instance ToResourceProperties Assessment where
  toResourceProperties Assessment {..}
    = ResourceProperties
        {awsType = "AWS::AuditManager::Assessment",
         supportsTags = Prelude.True,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "AssessmentReportsDestination"
                              Prelude.<$> assessmentReportsDestination,
                            (JSON..=) "AwsAccount" Prelude.<$> awsAccount,
                            (JSON..=) "Delegations" Prelude.<$> delegations,
                            (JSON..=) "Description" Prelude.<$> description,
                            (JSON..=) "FrameworkId" Prelude.<$> frameworkId,
                            (JSON..=) "Name" Prelude.<$> name,
                            (JSON..=) "Roles" Prelude.<$> roles,
                            (JSON..=) "Scope" Prelude.<$> scope,
                            (JSON..=) "Status" Prelude.<$> status,
                            (JSON..=) "Tags" Prelude.<$> tags])}
instance JSON.ToJSON Assessment where
  toJSON Assessment {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "AssessmentReportsDestination"
                 Prelude.<$> assessmentReportsDestination,
               (JSON..=) "AwsAccount" Prelude.<$> awsAccount,
               (JSON..=) "Delegations" Prelude.<$> delegations,
               (JSON..=) "Description" Prelude.<$> description,
               (JSON..=) "FrameworkId" Prelude.<$> frameworkId,
               (JSON..=) "Name" Prelude.<$> name,
               (JSON..=) "Roles" Prelude.<$> roles,
               (JSON..=) "Scope" Prelude.<$> scope,
               (JSON..=) "Status" Prelude.<$> status,
               (JSON..=) "Tags" Prelude.<$> tags]))
instance Property "AssessmentReportsDestination" Assessment where
  type PropertyType "AssessmentReportsDestination" Assessment = AssessmentReportsDestinationProperty
  set newValue Assessment {..}
    = Assessment
        {assessmentReportsDestination = Prelude.pure newValue, ..}
instance Property "AwsAccount" Assessment where
  type PropertyType "AwsAccount" Assessment = AWSAccountProperty
  set newValue Assessment {..}
    = Assessment {awsAccount = Prelude.pure newValue, ..}
instance Property "Delegations" Assessment where
  type PropertyType "Delegations" Assessment = [DelegationProperty]
  set newValue Assessment {..}
    = Assessment {delegations = Prelude.pure newValue, ..}
instance Property "Description" Assessment where
  type PropertyType "Description" Assessment = Value Prelude.Text
  set newValue Assessment {..}
    = Assessment {description = Prelude.pure newValue, ..}
instance Property "FrameworkId" Assessment where
  type PropertyType "FrameworkId" Assessment = Value Prelude.Text
  set newValue Assessment {..}
    = Assessment {frameworkId = Prelude.pure newValue, ..}
instance Property "Name" Assessment where
  type PropertyType "Name" Assessment = Value Prelude.Text
  set newValue Assessment {..}
    = Assessment {name = Prelude.pure newValue, ..}
instance Property "Roles" Assessment where
  type PropertyType "Roles" Assessment = [RoleProperty]
  set newValue Assessment {..}
    = Assessment {roles = Prelude.pure newValue, ..}
instance Property "Scope" Assessment where
  type PropertyType "Scope" Assessment = ScopeProperty
  set newValue Assessment {..}
    = Assessment {scope = Prelude.pure newValue, ..}
instance Property "Status" Assessment where
  type PropertyType "Status" Assessment = Value Prelude.Text
  set newValue Assessment {..}
    = Assessment {status = Prelude.pure newValue, ..}
instance Property "Tags" Assessment where
  type PropertyType "Tags" Assessment = [Tag]
  set newValue Assessment {..}
    = Assessment {tags = Prelude.pure newValue, ..}