/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Connect { namespace Model { /** *

Information about the action to be performed when a rule is * triggered.

See Also:

AWS * API Reference

*/ class RuleAction { public: AWS_CONNECT_API RuleAction(); AWS_CONNECT_API RuleAction(Aws::Utils::Json::JsonView jsonValue); AWS_CONNECT_API RuleAction& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_CONNECT_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The type of action that creates a rule.

*/ inline const ActionType& GetActionType() const{ return m_actionType; } /** *

The type of action that creates a rule.

*/ inline bool ActionTypeHasBeenSet() const { return m_actionTypeHasBeenSet; } /** *

The type of action that creates a rule.

*/ inline void SetActionType(const ActionType& value) { m_actionTypeHasBeenSet = true; m_actionType = value; } /** *

The type of action that creates a rule.

*/ inline void SetActionType(ActionType&& value) { m_actionTypeHasBeenSet = true; m_actionType = std::move(value); } /** *

The type of action that creates a rule.

*/ inline RuleAction& WithActionType(const ActionType& value) { SetActionType(value); return *this;} /** *

The type of action that creates a rule.

*/ inline RuleAction& WithActionType(ActionType&& value) { SetActionType(std::move(value)); return *this;} /** *

Information about the task action. This field is required if * TriggerEventSource is one of the following values: * OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | * OnSalesforceCaseCreate

*/ inline const TaskActionDefinition& GetTaskAction() const{ return m_taskAction; } /** *

Information about the task action. This field is required if * TriggerEventSource is one of the following values: * OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | * OnSalesforceCaseCreate

*/ inline bool TaskActionHasBeenSet() const { return m_taskActionHasBeenSet; } /** *

Information about the task action. This field is required if * TriggerEventSource is one of the following values: * OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | * OnSalesforceCaseCreate

*/ inline void SetTaskAction(const TaskActionDefinition& value) { m_taskActionHasBeenSet = true; m_taskAction = value; } /** *

Information about the task action. This field is required if * TriggerEventSource is one of the following values: * OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | * OnSalesforceCaseCreate

*/ inline void SetTaskAction(TaskActionDefinition&& value) { m_taskActionHasBeenSet = true; m_taskAction = std::move(value); } /** *

Information about the task action. This field is required if * TriggerEventSource is one of the following values: * OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | * OnSalesforceCaseCreate

*/ inline RuleAction& WithTaskAction(const TaskActionDefinition& value) { SetTaskAction(value); return *this;} /** *

Information about the task action. This field is required if * TriggerEventSource is one of the following values: * OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | * OnSalesforceCaseCreate

*/ inline RuleAction& WithTaskAction(TaskActionDefinition&& value) { SetTaskAction(std::move(value)); return *this;} /** *

Information about the EventBridge action.

*/ inline const EventBridgeActionDefinition& GetEventBridgeAction() const{ return m_eventBridgeAction; } /** *

Information about the EventBridge action.

*/ inline bool EventBridgeActionHasBeenSet() const { return m_eventBridgeActionHasBeenSet; } /** *

Information about the EventBridge action.

*/ inline void SetEventBridgeAction(const EventBridgeActionDefinition& value) { m_eventBridgeActionHasBeenSet = true; m_eventBridgeAction = value; } /** *

Information about the EventBridge action.

*/ inline void SetEventBridgeAction(EventBridgeActionDefinition&& value) { m_eventBridgeActionHasBeenSet = true; m_eventBridgeAction = std::move(value); } /** *

Information about the EventBridge action.

*/ inline RuleAction& WithEventBridgeAction(const EventBridgeActionDefinition& value) { SetEventBridgeAction(value); return *this;} /** *

Information about the EventBridge action.

*/ inline RuleAction& WithEventBridgeAction(EventBridgeActionDefinition&& value) { SetEventBridgeAction(std::move(value)); return *this;} /** *

Information about the contact category action.

*/ inline const AssignContactCategoryActionDefinition& GetAssignContactCategoryAction() const{ return m_assignContactCategoryAction; } /** *

Information about the contact category action.

*/ inline bool AssignContactCategoryActionHasBeenSet() const { return m_assignContactCategoryActionHasBeenSet; } /** *

Information about the contact category action.

*/ inline void SetAssignContactCategoryAction(const AssignContactCategoryActionDefinition& value) { m_assignContactCategoryActionHasBeenSet = true; m_assignContactCategoryAction = value; } /** *

Information about the contact category action.

*/ inline void SetAssignContactCategoryAction(AssignContactCategoryActionDefinition&& value) { m_assignContactCategoryActionHasBeenSet = true; m_assignContactCategoryAction = std::move(value); } /** *

Information about the contact category action.

*/ inline RuleAction& WithAssignContactCategoryAction(const AssignContactCategoryActionDefinition& value) { SetAssignContactCategoryAction(value); return *this;} /** *

Information about the contact category action.

*/ inline RuleAction& WithAssignContactCategoryAction(AssignContactCategoryActionDefinition&& value) { SetAssignContactCategoryAction(std::move(value)); return *this;} /** *

Information about the send notification action.

*/ inline const SendNotificationActionDefinition& GetSendNotificationAction() const{ return m_sendNotificationAction; } /** *

Information about the send notification action.

*/ inline bool SendNotificationActionHasBeenSet() const { return m_sendNotificationActionHasBeenSet; } /** *

Information about the send notification action.

*/ inline void SetSendNotificationAction(const SendNotificationActionDefinition& value) { m_sendNotificationActionHasBeenSet = true; m_sendNotificationAction = value; } /** *

Information about the send notification action.

*/ inline void SetSendNotificationAction(SendNotificationActionDefinition&& value) { m_sendNotificationActionHasBeenSet = true; m_sendNotificationAction = std::move(value); } /** *

Information about the send notification action.

*/ inline RuleAction& WithSendNotificationAction(const SendNotificationActionDefinition& value) { SetSendNotificationAction(value); return *this;} /** *

Information about the send notification action.

*/ inline RuleAction& WithSendNotificationAction(SendNotificationActionDefinition&& value) { SetSendNotificationAction(std::move(value)); return *this;} private: ActionType m_actionType; bool m_actionTypeHasBeenSet = false; TaskActionDefinition m_taskAction; bool m_taskActionHasBeenSet = false; EventBridgeActionDefinition m_eventBridgeAction; bool m_eventBridgeActionHasBeenSet = false; AssignContactCategoryActionDefinition m_assignContactCategoryAction; bool m_assignContactCategoryActionHasBeenSet = false; SendNotificationActionDefinition m_sendNotificationAction; bool m_sendNotificationActionHasBeenSet = false; }; } // namespace Model } // namespace Connect } // namespace Aws