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

The information about a processor in a channel flow.

See Also:

* AWS * API Reference

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

The name of the channel flow.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the channel flow.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the channel flow.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the channel flow.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the channel flow.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the channel flow.

*/ inline Processor& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the channel flow.

*/ inline Processor& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the channel flow.

*/ inline Processor& WithName(const char* value) { SetName(value); return *this;} /** *

The information about the type of processor and its identifier.

*/ inline const ProcessorConfiguration& GetConfiguration() const{ return m_configuration; } /** *

The information about the type of processor and its identifier.

*/ inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; } /** *

The information about the type of processor and its identifier.

*/ inline void SetConfiguration(const ProcessorConfiguration& value) { m_configurationHasBeenSet = true; m_configuration = value; } /** *

The information about the type of processor and its identifier.

*/ inline void SetConfiguration(ProcessorConfiguration&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); } /** *

The information about the type of processor and its identifier.

*/ inline Processor& WithConfiguration(const ProcessorConfiguration& value) { SetConfiguration(value); return *this;} /** *

The information about the type of processor and its identifier.

*/ inline Processor& WithConfiguration(ProcessorConfiguration&& value) { SetConfiguration(std::move(value)); return *this;} /** *

The sequence in which processors run. If you have multiple processors in a * channel flow, message processing goes through each processor in the sequence. * The value determines the sequence. At this point, we support only 1 processor * within a flow.

*/ inline int GetExecutionOrder() const{ return m_executionOrder; } /** *

The sequence in which processors run. If you have multiple processors in a * channel flow, message processing goes through each processor in the sequence. * The value determines the sequence. At this point, we support only 1 processor * within a flow.

*/ inline bool ExecutionOrderHasBeenSet() const { return m_executionOrderHasBeenSet; } /** *

The sequence in which processors run. If you have multiple processors in a * channel flow, message processing goes through each processor in the sequence. * The value determines the sequence. At this point, we support only 1 processor * within a flow.

*/ inline void SetExecutionOrder(int value) { m_executionOrderHasBeenSet = true; m_executionOrder = value; } /** *

The sequence in which processors run. If you have multiple processors in a * channel flow, message processing goes through each processor in the sequence. * The value determines the sequence. At this point, we support only 1 processor * within a flow.

*/ inline Processor& WithExecutionOrder(int value) { SetExecutionOrder(value); return *this;} /** *

Determines whether to continue with message processing or stop it in cases * where communication with a processor fails. If a processor has a fallback action * of ABORT and communication with it fails, the processor sets the * message status to FAILED and does not send the message to any * recipients. Note that if the last processor in the channel flow sequence has a * fallback action of CONTINUE and communication with the processor * fails, then the message is considered processed and sent to recipients of the * channel.

*/ inline const FallbackAction& GetFallbackAction() const{ return m_fallbackAction; } /** *

Determines whether to continue with message processing or stop it in cases * where communication with a processor fails. If a processor has a fallback action * of ABORT and communication with it fails, the processor sets the * message status to FAILED and does not send the message to any * recipients. Note that if the last processor in the channel flow sequence has a * fallback action of CONTINUE and communication with the processor * fails, then the message is considered processed and sent to recipients of the * channel.

*/ inline bool FallbackActionHasBeenSet() const { return m_fallbackActionHasBeenSet; } /** *

Determines whether to continue with message processing or stop it in cases * where communication with a processor fails. If a processor has a fallback action * of ABORT and communication with it fails, the processor sets the * message status to FAILED and does not send the message to any * recipients. Note that if the last processor in the channel flow sequence has a * fallback action of CONTINUE and communication with the processor * fails, then the message is considered processed and sent to recipients of the * channel.

*/ inline void SetFallbackAction(const FallbackAction& value) { m_fallbackActionHasBeenSet = true; m_fallbackAction = value; } /** *

Determines whether to continue with message processing or stop it in cases * where communication with a processor fails. If a processor has a fallback action * of ABORT and communication with it fails, the processor sets the * message status to FAILED and does not send the message to any * recipients. Note that if the last processor in the channel flow sequence has a * fallback action of CONTINUE and communication with the processor * fails, then the message is considered processed and sent to recipients of the * channel.

*/ inline void SetFallbackAction(FallbackAction&& value) { m_fallbackActionHasBeenSet = true; m_fallbackAction = std::move(value); } /** *

Determines whether to continue with message processing or stop it in cases * where communication with a processor fails. If a processor has a fallback action * of ABORT and communication with it fails, the processor sets the * message status to FAILED and does not send the message to any * recipients. Note that if the last processor in the channel flow sequence has a * fallback action of CONTINUE and communication with the processor * fails, then the message is considered processed and sent to recipients of the * channel.

*/ inline Processor& WithFallbackAction(const FallbackAction& value) { SetFallbackAction(value); return *this;} /** *

Determines whether to continue with message processing or stop it in cases * where communication with a processor fails. If a processor has a fallback action * of ABORT and communication with it fails, the processor sets the * message status to FAILED and does not send the message to any * recipients. Note that if the last processor in the channel flow sequence has a * fallback action of CONTINUE and communication with the processor * fails, then the message is considered processed and sent to recipients of the * channel.

*/ inline Processor& WithFallbackAction(FallbackAction&& value) { SetFallbackAction(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; ProcessorConfiguration m_configuration; bool m_configurationHasBeenSet = false; int m_executionOrder; bool m_executionOrderHasBeenSet = false; FallbackAction m_fallbackAction; bool m_fallbackActionHasBeenSet = false; }; } // namespace Model } // namespace ChimeSDKMessaging } // namespace Aws