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

Stores information about a callback.

See Also:

AWS * API Reference

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

The message ID.

*/ inline const Aws::String& GetMessageId() const{ return m_messageId; } /** *

The message ID.

*/ inline bool MessageIdHasBeenSet() const { return m_messageIdHasBeenSet; } /** *

The message ID.

*/ inline void SetMessageId(const Aws::String& value) { m_messageIdHasBeenSet = true; m_messageId = value; } /** *

The message ID.

*/ inline void SetMessageId(Aws::String&& value) { m_messageIdHasBeenSet = true; m_messageId = std::move(value); } /** *

The message ID.

*/ inline void SetMessageId(const char* value) { m_messageIdHasBeenSet = true; m_messageId.assign(value); } /** *

The message ID.

*/ inline ChannelMessageCallback& WithMessageId(const Aws::String& value) { SetMessageId(value); return *this;} /** *

The message ID.

*/ inline ChannelMessageCallback& WithMessageId(Aws::String&& value) { SetMessageId(std::move(value)); return *this;} /** *

The message ID.

*/ inline ChannelMessageCallback& WithMessageId(const char* value) { SetMessageId(value); return *this;} /** *

The message content. For Amazon Lex V2 bot responses, this field holds a list * of messages originating from the bot. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline const Aws::String& GetContent() const{ return m_content; } /** *

The message content. For Amazon Lex V2 bot responses, this field holds a list * of messages originating from the bot. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline bool ContentHasBeenSet() const { return m_contentHasBeenSet; } /** *

The message content. For Amazon Lex V2 bot responses, this field holds a list * of messages originating from the bot. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline void SetContent(const Aws::String& value) { m_contentHasBeenSet = true; m_content = value; } /** *

The message content. For Amazon Lex V2 bot responses, this field holds a list * of messages originating from the bot. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline void SetContent(Aws::String&& value) { m_contentHasBeenSet = true; m_content = std::move(value); } /** *

The message content. For Amazon Lex V2 bot responses, this field holds a list * of messages originating from the bot. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline void SetContent(const char* value) { m_contentHasBeenSet = true; m_content.assign(value); } /** *

The message content. For Amazon Lex V2 bot responses, this field holds a list * of messages originating from the bot. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& WithContent(const Aws::String& value) { SetContent(value); return *this;} /** *

The message content. For Amazon Lex V2 bot responses, this field holds a list * of messages originating from the bot. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& WithContent(Aws::String&& value) { SetContent(std::move(value)); return *this;} /** *

The message content. For Amazon Lex V2 bot responses, this field holds a list * of messages originating from the bot. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& WithContent(const char* value) { SetContent(value); return *this;} /** *

The message metadata.

*/ inline const Aws::String& GetMetadata() const{ return m_metadata; } /** *

The message metadata.

*/ inline bool MetadataHasBeenSet() const { return m_metadataHasBeenSet; } /** *

The message metadata.

*/ inline void SetMetadata(const Aws::String& value) { m_metadataHasBeenSet = true; m_metadata = value; } /** *

The message metadata.

*/ inline void SetMetadata(Aws::String&& value) { m_metadataHasBeenSet = true; m_metadata = std::move(value); } /** *

The message metadata.

*/ inline void SetMetadata(const char* value) { m_metadataHasBeenSet = true; m_metadata.assign(value); } /** *

The message metadata.

*/ inline ChannelMessageCallback& WithMetadata(const Aws::String& value) { SetMetadata(value); return *this;} /** *

The message metadata.

*/ inline ChannelMessageCallback& WithMetadata(Aws::String&& value) { SetMetadata(std::move(value)); return *this;} /** *

The message metadata.

*/ inline ChannelMessageCallback& WithMetadata(const char* value) { SetMetadata(value); return *this;} /** *

The push notification configuration of the message.

*/ inline const PushNotificationConfiguration& GetPushNotification() const{ return m_pushNotification; } /** *

The push notification configuration of the message.

*/ inline bool PushNotificationHasBeenSet() const { return m_pushNotificationHasBeenSet; } /** *

The push notification configuration of the message.

*/ inline void SetPushNotification(const PushNotificationConfiguration& value) { m_pushNotificationHasBeenSet = true; m_pushNotification = value; } /** *

The push notification configuration of the message.

*/ inline void SetPushNotification(PushNotificationConfiguration&& value) { m_pushNotificationHasBeenSet = true; m_pushNotification = std::move(value); } /** *

The push notification configuration of the message.

*/ inline ChannelMessageCallback& WithPushNotification(const PushNotificationConfiguration& value) { SetPushNotification(value); return *this;} /** *

The push notification configuration of the message.

*/ inline ChannelMessageCallback& WithPushNotification(PushNotificationConfiguration&& value) { SetPushNotification(std::move(value)); return *this;} /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline const Aws::Map& GetMessageAttributes() const{ return m_messageAttributes; } /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline bool MessageAttributesHasBeenSet() const { return m_messageAttributesHasBeenSet; } /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline void SetMessageAttributes(const Aws::Map& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes = value; } /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline void SetMessageAttributes(Aws::Map&& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes = std::move(value); } /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& WithMessageAttributes(const Aws::Map& value) { SetMessageAttributes(value); return *this;} /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& WithMessageAttributes(Aws::Map&& value) { SetMessageAttributes(std::move(value)); return *this;} /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& AddMessageAttributes(const Aws::String& key, const MessageAttributeValue& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(key, value); return *this; } /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& AddMessageAttributes(Aws::String&& key, const MessageAttributeValue& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(std::move(key), value); return *this; } /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& AddMessageAttributes(const Aws::String& key, MessageAttributeValue&& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(key, std::move(value)); return *this; } /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& AddMessageAttributes(Aws::String&& key, MessageAttributeValue&& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(std::move(key), std::move(value)); return *this; } /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& AddMessageAttributes(const char* key, MessageAttributeValue&& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(key, std::move(value)); return *this; } /** *

The attributes for the channel message. For Amazon Lex V2 bot responses, the * attributes are mapped to specific fields from the bot. For more information, * refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& AddMessageAttributes(const char* key, const MessageAttributeValue& value) { m_messageAttributesHasBeenSet = true; m_messageAttributes.emplace(key, value); return *this; } /** *

The ID of the SubChannel.

*/ inline const Aws::String& GetSubChannelId() const{ return m_subChannelId; } /** *

The ID of the SubChannel.

*/ inline bool SubChannelIdHasBeenSet() const { return m_subChannelIdHasBeenSet; } /** *

The ID of the SubChannel.

*/ inline void SetSubChannelId(const Aws::String& value) { m_subChannelIdHasBeenSet = true; m_subChannelId = value; } /** *

The ID of the SubChannel.

*/ inline void SetSubChannelId(Aws::String&& value) { m_subChannelIdHasBeenSet = true; m_subChannelId = std::move(value); } /** *

The ID of the SubChannel.

*/ inline void SetSubChannelId(const char* value) { m_subChannelIdHasBeenSet = true; m_subChannelId.assign(value); } /** *

The ID of the SubChannel.

*/ inline ChannelMessageCallback& WithSubChannelId(const Aws::String& value) { SetSubChannelId(value); return *this;} /** *

The ID of the SubChannel.

*/ inline ChannelMessageCallback& WithSubChannelId(Aws::String&& value) { SetSubChannelId(std::move(value)); return *this;} /** *

The ID of the SubChannel.

*/ inline ChannelMessageCallback& WithSubChannelId(const char* value) { SetSubChannelId(value); return *this;} /** *

The content type of the call-back message. For Amazon Lex V2 bot responses, * the content type is application/amz-chime-lex-msgs for success * responses and application/amz-chime-lex-error for failure * responses. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline const Aws::String& GetContentType() const{ return m_contentType; } /** *

The content type of the call-back message. For Amazon Lex V2 bot responses, * the content type is application/amz-chime-lex-msgs for success * responses and application/amz-chime-lex-error for failure * responses. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline bool ContentTypeHasBeenSet() const { return m_contentTypeHasBeenSet; } /** *

The content type of the call-back message. For Amazon Lex V2 bot responses, * the content type is application/amz-chime-lex-msgs for success * responses and application/amz-chime-lex-error for failure * responses. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline void SetContentType(const Aws::String& value) { m_contentTypeHasBeenSet = true; m_contentType = value; } /** *

The content type of the call-back message. For Amazon Lex V2 bot responses, * the content type is application/amz-chime-lex-msgs for success * responses and application/amz-chime-lex-error for failure * responses. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline void SetContentType(Aws::String&& value) { m_contentTypeHasBeenSet = true; m_contentType = std::move(value); } /** *

The content type of the call-back message. For Amazon Lex V2 bot responses, * the content type is application/amz-chime-lex-msgs for success * responses and application/amz-chime-lex-error for failure * responses. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline void SetContentType(const char* value) { m_contentTypeHasBeenSet = true; m_contentType.assign(value); } /** *

The content type of the call-back message. For Amazon Lex V2 bot responses, * the content type is application/amz-chime-lex-msgs for success * responses and application/amz-chime-lex-error for failure * responses. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& WithContentType(const Aws::String& value) { SetContentType(value); return *this;} /** *

The content type of the call-back message. For Amazon Lex V2 bot responses, * the content type is application/amz-chime-lex-msgs for success * responses and application/amz-chime-lex-error for failure * responses. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& WithContentType(Aws::String&& value) { SetContentType(std::move(value)); return *this;} /** *

The content type of the call-back message. For Amazon Lex V2 bot responses, * the content type is application/amz-chime-lex-msgs for success * responses and application/amz-chime-lex-error for failure * responses. For more information, refer to Processing * responses from an AppInstanceBot in the Amazon Chime SDK Messaging * Developer Guide.

*/ inline ChannelMessageCallback& WithContentType(const char* value) { SetContentType(value); return *this;} private: Aws::String m_messageId; bool m_messageIdHasBeenSet = false; Aws::String m_content; bool m_contentHasBeenSet = false; Aws::String m_metadata; bool m_metadataHasBeenSet = false; PushNotificationConfiguration m_pushNotification; bool m_pushNotificationHasBeenSet = false; Aws::Map m_messageAttributes; bool m_messageAttributesHasBeenSet = false; Aws::String m_subChannelId; bool m_subChannelIdHasBeenSet = false; Aws::String m_contentType; bool m_contentTypeHasBeenSet = false; }; } // namespace Model } // namespace ChimeSDKMessaging } // namespace Aws