packages feed

stratosphere-connect-1.0.0: gen/Stratosphere/Connect/Rule/ActionsProperty.hs

module Stratosphere.Connect.Rule.ActionsProperty (
        module Exports, ActionsProperty(..), mkActionsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Connect.Rule.CreateCaseActionProperty as Exports
import {-# SOURCE #-} Stratosphere.Connect.Rule.EventBridgeActionProperty as Exports
import {-# SOURCE #-} Stratosphere.Connect.Rule.SendNotificationActionProperty as Exports
import {-# SOURCE #-} Stratosphere.Connect.Rule.SubmitAutoEvaluationActionProperty as Exports
import {-# SOURCE #-} Stratosphere.Connect.Rule.TaskActionProperty as Exports
import {-# SOURCE #-} Stratosphere.Connect.Rule.UpdateCaseActionProperty as Exports
import Stratosphere.ResourceProperties
data ActionsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-actions.html>
    ActionsProperty {haddock_workaround_ :: (),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-actions.html#cfn-connect-rule-actions-assigncontactcategoryactions>
                     assignContactCategoryActions :: (Prelude.Maybe JSON.Object),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-actions.html#cfn-connect-rule-actions-createcaseactions>
                     createCaseActions :: (Prelude.Maybe [CreateCaseActionProperty]),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-actions.html#cfn-connect-rule-actions-endassociatedtasksactions>
                     endAssociatedTasksActions :: (Prelude.Maybe JSON.Object),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-actions.html#cfn-connect-rule-actions-eventbridgeactions>
                     eventBridgeActions :: (Prelude.Maybe [EventBridgeActionProperty]),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-actions.html#cfn-connect-rule-actions-sendnotificationactions>
                     sendNotificationActions :: (Prelude.Maybe [SendNotificationActionProperty]),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-actions.html#cfn-connect-rule-actions-submitautoevaluationactions>
                     submitAutoEvaluationActions :: (Prelude.Maybe [SubmitAutoEvaluationActionProperty]),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-actions.html#cfn-connect-rule-actions-taskactions>
                     taskActions :: (Prelude.Maybe [TaskActionProperty]),
                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-actions.html#cfn-connect-rule-actions-updatecaseactions>
                     updateCaseActions :: (Prelude.Maybe [UpdateCaseActionProperty])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkActionsProperty :: ActionsProperty
mkActionsProperty
  = ActionsProperty
      {haddock_workaround_ = (),
       assignContactCategoryActions = Prelude.Nothing,
       createCaseActions = Prelude.Nothing,
       endAssociatedTasksActions = Prelude.Nothing,
       eventBridgeActions = Prelude.Nothing,
       sendNotificationActions = Prelude.Nothing,
       submitAutoEvaluationActions = Prelude.Nothing,
       taskActions = Prelude.Nothing, updateCaseActions = Prelude.Nothing}
instance ToResourceProperties ActionsProperty where
  toResourceProperties ActionsProperty {..}
    = ResourceProperties
        {awsType = "AWS::Connect::Rule.Actions",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "AssignContactCategoryActions"
                              Prelude.<$> assignContactCategoryActions,
                            (JSON..=) "CreateCaseActions" Prelude.<$> createCaseActions,
                            (JSON..=) "EndAssociatedTasksActions"
                              Prelude.<$> endAssociatedTasksActions,
                            (JSON..=) "EventBridgeActions" Prelude.<$> eventBridgeActions,
                            (JSON..=) "SendNotificationActions"
                              Prelude.<$> sendNotificationActions,
                            (JSON..=) "SubmitAutoEvaluationActions"
                              Prelude.<$> submitAutoEvaluationActions,
                            (JSON..=) "TaskActions" Prelude.<$> taskActions,
                            (JSON..=) "UpdateCaseActions" Prelude.<$> updateCaseActions])}
instance JSON.ToJSON ActionsProperty where
  toJSON ActionsProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "AssignContactCategoryActions"
                 Prelude.<$> assignContactCategoryActions,
               (JSON..=) "CreateCaseActions" Prelude.<$> createCaseActions,
               (JSON..=) "EndAssociatedTasksActions"
                 Prelude.<$> endAssociatedTasksActions,
               (JSON..=) "EventBridgeActions" Prelude.<$> eventBridgeActions,
               (JSON..=) "SendNotificationActions"
                 Prelude.<$> sendNotificationActions,
               (JSON..=) "SubmitAutoEvaluationActions"
                 Prelude.<$> submitAutoEvaluationActions,
               (JSON..=) "TaskActions" Prelude.<$> taskActions,
               (JSON..=) "UpdateCaseActions" Prelude.<$> updateCaseActions]))
instance Property "AssignContactCategoryActions" ActionsProperty where
  type PropertyType "AssignContactCategoryActions" ActionsProperty = JSON.Object
  set newValue ActionsProperty {..}
    = ActionsProperty
        {assignContactCategoryActions = Prelude.pure newValue, ..}
instance Property "CreateCaseActions" ActionsProperty where
  type PropertyType "CreateCaseActions" ActionsProperty = [CreateCaseActionProperty]
  set newValue ActionsProperty {..}
    = ActionsProperty {createCaseActions = Prelude.pure newValue, ..}
instance Property "EndAssociatedTasksActions" ActionsProperty where
  type PropertyType "EndAssociatedTasksActions" ActionsProperty = JSON.Object
  set newValue ActionsProperty {..}
    = ActionsProperty
        {endAssociatedTasksActions = Prelude.pure newValue, ..}
instance Property "EventBridgeActions" ActionsProperty where
  type PropertyType "EventBridgeActions" ActionsProperty = [EventBridgeActionProperty]
  set newValue ActionsProperty {..}
    = ActionsProperty {eventBridgeActions = Prelude.pure newValue, ..}
instance Property "SendNotificationActions" ActionsProperty where
  type PropertyType "SendNotificationActions" ActionsProperty = [SendNotificationActionProperty]
  set newValue ActionsProperty {..}
    = ActionsProperty
        {sendNotificationActions = Prelude.pure newValue, ..}
instance Property "SubmitAutoEvaluationActions" ActionsProperty where
  type PropertyType "SubmitAutoEvaluationActions" ActionsProperty = [SubmitAutoEvaluationActionProperty]
  set newValue ActionsProperty {..}
    = ActionsProperty
        {submitAutoEvaluationActions = Prelude.pure newValue, ..}
instance Property "TaskActions" ActionsProperty where
  type PropertyType "TaskActions" ActionsProperty = [TaskActionProperty]
  set newValue ActionsProperty {..}
    = ActionsProperty {taskActions = Prelude.pure newValue, ..}
instance Property "UpdateCaseActions" ActionsProperty where
  type PropertyType "UpdateCaseActions" ActionsProperty = [UpdateCaseActionProperty]
  set newValue ActionsProperty {..}
    = ActionsProperty {updateCaseActions = Prelude.pure newValue, ..}