packages feed

stratosphere-backup-1.0.0: gen/Stratosphere/Backup/RestoreTestingSelection.hs

module Stratosphere.Backup.RestoreTestingSelection (
        module Exports, RestoreTestingSelection(..),
        mkRestoreTestingSelection
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Backup.RestoreTestingSelection.ProtectedResourceConditionsProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data RestoreTestingSelection
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html>
    RestoreTestingSelection {haddock_workaround_ :: (),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-iamrolearn>
                             iamRoleArn :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-protectedresourcearns>
                             protectedResourceArns :: (Prelude.Maybe (ValueList Prelude.Text)),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-protectedresourceconditions>
                             protectedResourceConditions :: (Prelude.Maybe ProtectedResourceConditionsProperty),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-protectedresourcetype>
                             protectedResourceType :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-restoremetadataoverrides>
                             restoreMetadataOverrides :: (Prelude.Maybe (Prelude.Map Prelude.Text (Value Prelude.Text))),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-restoretestingplanname>
                             restoreTestingPlanName :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-restoretestingselectionname>
                             restoreTestingSelectionName :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-restoretestingselection.html#cfn-backup-restoretestingselection-validationwindowhours>
                             validationWindowHours :: (Prelude.Maybe (Value Prelude.Integer))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkRestoreTestingSelection ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text
        -> Value Prelude.Text -> RestoreTestingSelection
mkRestoreTestingSelection
  iamRoleArn
  protectedResourceType
  restoreTestingPlanName
  restoreTestingSelectionName
  = RestoreTestingSelection
      {haddock_workaround_ = (), iamRoleArn = iamRoleArn,
       protectedResourceType = protectedResourceType,
       restoreTestingPlanName = restoreTestingPlanName,
       restoreTestingSelectionName = restoreTestingSelectionName,
       protectedResourceArns = Prelude.Nothing,
       protectedResourceConditions = Prelude.Nothing,
       restoreMetadataOverrides = Prelude.Nothing,
       validationWindowHours = Prelude.Nothing}
instance ToResourceProperties RestoreTestingSelection where
  toResourceProperties RestoreTestingSelection {..}
    = ResourceProperties
        {awsType = "AWS::Backup::RestoreTestingSelection",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["IamRoleArn" JSON..= iamRoleArn,
                            "ProtectedResourceType" JSON..= protectedResourceType,
                            "RestoreTestingPlanName" JSON..= restoreTestingPlanName,
                            "RestoreTestingSelectionName" JSON..= restoreTestingSelectionName]
                           (Prelude.catMaybes
                              [(JSON..=) "ProtectedResourceArns"
                                 Prelude.<$> protectedResourceArns,
                               (JSON..=) "ProtectedResourceConditions"
                                 Prelude.<$> protectedResourceConditions,
                               (JSON..=) "RestoreMetadataOverrides"
                                 Prelude.<$> restoreMetadataOverrides,
                               (JSON..=) "ValidationWindowHours"
                                 Prelude.<$> validationWindowHours]))}
instance JSON.ToJSON RestoreTestingSelection where
  toJSON RestoreTestingSelection {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["IamRoleArn" JSON..= iamRoleArn,
               "ProtectedResourceType" JSON..= protectedResourceType,
               "RestoreTestingPlanName" JSON..= restoreTestingPlanName,
               "RestoreTestingSelectionName" JSON..= restoreTestingSelectionName]
              (Prelude.catMaybes
                 [(JSON..=) "ProtectedResourceArns"
                    Prelude.<$> protectedResourceArns,
                  (JSON..=) "ProtectedResourceConditions"
                    Prelude.<$> protectedResourceConditions,
                  (JSON..=) "RestoreMetadataOverrides"
                    Prelude.<$> restoreMetadataOverrides,
                  (JSON..=) "ValidationWindowHours"
                    Prelude.<$> validationWindowHours])))
instance Property "IamRoleArn" RestoreTestingSelection where
  type PropertyType "IamRoleArn" RestoreTestingSelection = Value Prelude.Text
  set newValue RestoreTestingSelection {..}
    = RestoreTestingSelection {iamRoleArn = newValue, ..}
instance Property "ProtectedResourceArns" RestoreTestingSelection where
  type PropertyType "ProtectedResourceArns" RestoreTestingSelection = ValueList Prelude.Text
  set newValue RestoreTestingSelection {..}
    = RestoreTestingSelection
        {protectedResourceArns = Prelude.pure newValue, ..}
instance Property "ProtectedResourceConditions" RestoreTestingSelection where
  type PropertyType "ProtectedResourceConditions" RestoreTestingSelection = ProtectedResourceConditionsProperty
  set newValue RestoreTestingSelection {..}
    = RestoreTestingSelection
        {protectedResourceConditions = Prelude.pure newValue, ..}
instance Property "ProtectedResourceType" RestoreTestingSelection where
  type PropertyType "ProtectedResourceType" RestoreTestingSelection = Value Prelude.Text
  set newValue RestoreTestingSelection {..}
    = RestoreTestingSelection {protectedResourceType = newValue, ..}
instance Property "RestoreMetadataOverrides" RestoreTestingSelection where
  type PropertyType "RestoreMetadataOverrides" RestoreTestingSelection = Prelude.Map Prelude.Text (Value Prelude.Text)
  set newValue RestoreTestingSelection {..}
    = RestoreTestingSelection
        {restoreMetadataOverrides = Prelude.pure newValue, ..}
instance Property "RestoreTestingPlanName" RestoreTestingSelection where
  type PropertyType "RestoreTestingPlanName" RestoreTestingSelection = Value Prelude.Text
  set newValue RestoreTestingSelection {..}
    = RestoreTestingSelection {restoreTestingPlanName = newValue, ..}
instance Property "RestoreTestingSelectionName" RestoreTestingSelection where
  type PropertyType "RestoreTestingSelectionName" RestoreTestingSelection = Value Prelude.Text
  set newValue RestoreTestingSelection {..}
    = RestoreTestingSelection
        {restoreTestingSelectionName = newValue, ..}
instance Property "ValidationWindowHours" RestoreTestingSelection where
  type PropertyType "ValidationWindowHours" RestoreTestingSelection = Value Prelude.Integer
  set newValue RestoreTestingSelection {..}
    = RestoreTestingSelection
        {validationWindowHours = Prelude.pure newValue, ..}