/** * 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 LexModelBuildingService { namespace Model { /** *

Represents an association between an Amazon Lex bot and an external messaging * platform.

See Also:

AWS * API Reference

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

The name of the association between the bot and the channel.

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

The name of the association between the bot and the channel.

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

The name of the association between the bot and the channel.

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

The name of the association between the bot and the channel.

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

The name of the association between the bot and the channel.

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

The name of the association between the bot and the channel.

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

The name of the association between the bot and the channel.

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

The name of the association between the bot and the channel.

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

A text description of the association you are creating.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A text description of the association you are creating.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A text description of the association you are creating.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A text description of the association you are creating.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A text description of the association you are creating.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A text description of the association you are creating.

*/ inline BotChannelAssociation& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A text description of the association you are creating.

*/ inline BotChannelAssociation& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A text description of the association you are creating.

*/ inline BotChannelAssociation& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

An alias pointing to the specific version of the Amazon Lex bot to which this * association is being made.

*/ inline const Aws::String& GetBotAlias() const{ return m_botAlias; } /** *

An alias pointing to the specific version of the Amazon Lex bot to which this * association is being made.

*/ inline bool BotAliasHasBeenSet() const { return m_botAliasHasBeenSet; } /** *

An alias pointing to the specific version of the Amazon Lex bot to which this * association is being made.

*/ inline void SetBotAlias(const Aws::String& value) { m_botAliasHasBeenSet = true; m_botAlias = value; } /** *

An alias pointing to the specific version of the Amazon Lex bot to which this * association is being made.

*/ inline void SetBotAlias(Aws::String&& value) { m_botAliasHasBeenSet = true; m_botAlias = std::move(value); } /** *

An alias pointing to the specific version of the Amazon Lex bot to which this * association is being made.

*/ inline void SetBotAlias(const char* value) { m_botAliasHasBeenSet = true; m_botAlias.assign(value); } /** *

An alias pointing to the specific version of the Amazon Lex bot to which this * association is being made.

*/ inline BotChannelAssociation& WithBotAlias(const Aws::String& value) { SetBotAlias(value); return *this;} /** *

An alias pointing to the specific version of the Amazon Lex bot to which this * association is being made.

*/ inline BotChannelAssociation& WithBotAlias(Aws::String&& value) { SetBotAlias(std::move(value)); return *this;} /** *

An alias pointing to the specific version of the Amazon Lex bot to which this * association is being made.

*/ inline BotChannelAssociation& WithBotAlias(const char* value) { SetBotAlias(value); return *this;} /** *

The name of the Amazon Lex bot to which this association is being made.

*

Currently, Amazon Lex supports associations with Facebook and Slack, * and Twilio.

*/ inline const Aws::String& GetBotName() const{ return m_botName; } /** *

The name of the Amazon Lex bot to which this association is being made.

*

Currently, Amazon Lex supports associations with Facebook and Slack, * and Twilio.

*/ inline bool BotNameHasBeenSet() const { return m_botNameHasBeenSet; } /** *

The name of the Amazon Lex bot to which this association is being made.

*

Currently, Amazon Lex supports associations with Facebook and Slack, * and Twilio.

*/ inline void SetBotName(const Aws::String& value) { m_botNameHasBeenSet = true; m_botName = value; } /** *

The name of the Amazon Lex bot to which this association is being made.

*

Currently, Amazon Lex supports associations with Facebook and Slack, * and Twilio.

*/ inline void SetBotName(Aws::String&& value) { m_botNameHasBeenSet = true; m_botName = std::move(value); } /** *

The name of the Amazon Lex bot to which this association is being made.

*

Currently, Amazon Lex supports associations with Facebook and Slack, * and Twilio.

*/ inline void SetBotName(const char* value) { m_botNameHasBeenSet = true; m_botName.assign(value); } /** *

The name of the Amazon Lex bot to which this association is being made.

*

Currently, Amazon Lex supports associations with Facebook and Slack, * and Twilio.

*/ inline BotChannelAssociation& WithBotName(const Aws::String& value) { SetBotName(value); return *this;} /** *

The name of the Amazon Lex bot to which this association is being made.

*

Currently, Amazon Lex supports associations with Facebook and Slack, * and Twilio.

*/ inline BotChannelAssociation& WithBotName(Aws::String&& value) { SetBotName(std::move(value)); return *this;} /** *

The name of the Amazon Lex bot to which this association is being made.

*

Currently, Amazon Lex supports associations with Facebook and Slack, * and Twilio.

*/ inline BotChannelAssociation& WithBotName(const char* value) { SetBotName(value); return *this;} /** *

The date that the association between the Amazon Lex bot and the channel was * created.

*/ inline const Aws::Utils::DateTime& GetCreatedDate() const{ return m_createdDate; } /** *

The date that the association between the Amazon Lex bot and the channel was * created.

*/ inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; } /** *

The date that the association between the Amazon Lex bot and the channel was * created.

*/ inline void SetCreatedDate(const Aws::Utils::DateTime& value) { m_createdDateHasBeenSet = true; m_createdDate = value; } /** *

The date that the association between the Amazon Lex bot and the channel was * created.

*/ inline void SetCreatedDate(Aws::Utils::DateTime&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); } /** *

The date that the association between the Amazon Lex bot and the channel was * created.

*/ inline BotChannelAssociation& WithCreatedDate(const Aws::Utils::DateTime& value) { SetCreatedDate(value); return *this;} /** *

The date that the association between the Amazon Lex bot and the channel was * created.

*/ inline BotChannelAssociation& WithCreatedDate(Aws::Utils::DateTime&& value) { SetCreatedDate(std::move(value)); return *this;} /** *

Specifies the type of association by indicating the type of channel being * established between the Amazon Lex bot and the external messaging platform.

*/ inline const ChannelType& GetType() const{ return m_type; } /** *

Specifies the type of association by indicating the type of channel being * established between the Amazon Lex bot and the external messaging platform.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

Specifies the type of association by indicating the type of channel being * established between the Amazon Lex bot and the external messaging platform.

*/ inline void SetType(const ChannelType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

Specifies the type of association by indicating the type of channel being * established between the Amazon Lex bot and the external messaging platform.

*/ inline void SetType(ChannelType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

Specifies the type of association by indicating the type of channel being * established between the Amazon Lex bot and the external messaging platform.

*/ inline BotChannelAssociation& WithType(const ChannelType& value) { SetType(value); return *this;} /** *

Specifies the type of association by indicating the type of channel being * established between the Amazon Lex bot and the external messaging platform.

*/ inline BotChannelAssociation& WithType(ChannelType&& value) { SetType(std::move(value)); return *this;} /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline const Aws::Map& GetBotConfiguration() const{ return m_botConfiguration; } /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline bool BotConfigurationHasBeenSet() const { return m_botConfigurationHasBeenSet; } /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline void SetBotConfiguration(const Aws::Map& value) { m_botConfigurationHasBeenSet = true; m_botConfiguration = value; } /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline void SetBotConfiguration(Aws::Map&& value) { m_botConfigurationHasBeenSet = true; m_botConfiguration = std::move(value); } /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline BotChannelAssociation& WithBotConfiguration(const Aws::Map& value) { SetBotConfiguration(value); return *this;} /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline BotChannelAssociation& WithBotConfiguration(Aws::Map&& value) { SetBotConfiguration(std::move(value)); return *this;} /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline BotChannelAssociation& AddBotConfiguration(const Aws::String& key, const Aws::String& value) { m_botConfigurationHasBeenSet = true; m_botConfiguration.emplace(key, value); return *this; } /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline BotChannelAssociation& AddBotConfiguration(Aws::String&& key, const Aws::String& value) { m_botConfigurationHasBeenSet = true; m_botConfiguration.emplace(std::move(key), value); return *this; } /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline BotChannelAssociation& AddBotConfiguration(const Aws::String& key, Aws::String&& value) { m_botConfigurationHasBeenSet = true; m_botConfiguration.emplace(key, std::move(value)); return *this; } /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline BotChannelAssociation& AddBotConfiguration(Aws::String&& key, Aws::String&& value) { m_botConfigurationHasBeenSet = true; m_botConfiguration.emplace(std::move(key), std::move(value)); return *this; } /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline BotChannelAssociation& AddBotConfiguration(const char* key, Aws::String&& value) { m_botConfigurationHasBeenSet = true; m_botConfiguration.emplace(key, std::move(value)); return *this; } /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline BotChannelAssociation& AddBotConfiguration(Aws::String&& key, const char* value) { m_botConfigurationHasBeenSet = true; m_botConfiguration.emplace(std::move(key), value); return *this; } /** *

Provides information necessary to communicate with the messaging platform. *

*/ inline BotChannelAssociation& AddBotConfiguration(const char* key, const char* value) { m_botConfigurationHasBeenSet = true; m_botConfiguration.emplace(key, value); return *this; } /** *

The status of the bot channel.

  • CREATED - The * channel has been created and is ready for use.

  • * IN_PROGRESS - Channel creation is in progress.

  • * FAILED - There was an error creating the channel. For information * about the reason for the failure, see the failureReason field.

    *
*/ inline const ChannelStatus& GetStatus() const{ return m_status; } /** *

The status of the bot channel.

  • CREATED - The * channel has been created and is ready for use.

  • * IN_PROGRESS - Channel creation is in progress.

  • * FAILED - There was an error creating the channel. For information * about the reason for the failure, see the failureReason field.

    *
*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status of the bot channel.

  • CREATED - The * channel has been created and is ready for use.

  • * IN_PROGRESS - Channel creation is in progress.

  • * FAILED - There was an error creating the channel. For information * about the reason for the failure, see the failureReason field.

    *
*/ inline void SetStatus(const ChannelStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status of the bot channel.

  • CREATED - The * channel has been created and is ready for use.

  • * IN_PROGRESS - Channel creation is in progress.

  • * FAILED - There was an error creating the channel. For information * about the reason for the failure, see the failureReason field.

    *
*/ inline void SetStatus(ChannelStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status of the bot channel.

  • CREATED - The * channel has been created and is ready for use.

  • * IN_PROGRESS - Channel creation is in progress.

  • * FAILED - There was an error creating the channel. For information * about the reason for the failure, see the failureReason field.

    *
*/ inline BotChannelAssociation& WithStatus(const ChannelStatus& value) { SetStatus(value); return *this;} /** *

The status of the bot channel.

  • CREATED - The * channel has been created and is ready for use.

  • * IN_PROGRESS - Channel creation is in progress.

  • * FAILED - There was an error creating the channel. For information * about the reason for the failure, see the failureReason field.

    *
*/ inline BotChannelAssociation& WithStatus(ChannelStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

If status is FAILED, Amazon Lex provides the reason * that it failed to create the association.

*/ inline const Aws::String& GetFailureReason() const{ return m_failureReason; } /** *

If status is FAILED, Amazon Lex provides the reason * that it failed to create the association.

*/ inline bool FailureReasonHasBeenSet() const { return m_failureReasonHasBeenSet; } /** *

If status is FAILED, Amazon Lex provides the reason * that it failed to create the association.

*/ inline void SetFailureReason(const Aws::String& value) { m_failureReasonHasBeenSet = true; m_failureReason = value; } /** *

If status is FAILED, Amazon Lex provides the reason * that it failed to create the association.

*/ inline void SetFailureReason(Aws::String&& value) { m_failureReasonHasBeenSet = true; m_failureReason = std::move(value); } /** *

If status is FAILED, Amazon Lex provides the reason * that it failed to create the association.

*/ inline void SetFailureReason(const char* value) { m_failureReasonHasBeenSet = true; m_failureReason.assign(value); } /** *

If status is FAILED, Amazon Lex provides the reason * that it failed to create the association.

*/ inline BotChannelAssociation& WithFailureReason(const Aws::String& value) { SetFailureReason(value); return *this;} /** *

If status is FAILED, Amazon Lex provides the reason * that it failed to create the association.

*/ inline BotChannelAssociation& WithFailureReason(Aws::String&& value) { SetFailureReason(std::move(value)); return *this;} /** *

If status is FAILED, Amazon Lex provides the reason * that it failed to create the association.

*/ inline BotChannelAssociation& WithFailureReason(const char* value) { SetFailureReason(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_botAlias; bool m_botAliasHasBeenSet = false; Aws::String m_botName; bool m_botNameHasBeenSet = false; Aws::Utils::DateTime m_createdDate; bool m_createdDateHasBeenSet = false; ChannelType m_type; bool m_typeHasBeenSet = false; Aws::Map m_botConfiguration; bool m_botConfigurationHasBeenSet = false; ChannelStatus m_status; bool m_statusHasBeenSet = false; Aws::String m_failureReason; bool m_failureReasonHasBeenSet = false; }; } // namespace Model } // namespace LexModelBuildingService } // namespace Aws