/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The details of a channel.See Also:
AWS
* API Reference
The name of a channel.
*/ inline const Aws::String& GetName() const{ return m_name; } /** *The name of a channel.
*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *The name of a channel.
*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *The name of a channel.
*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *The name of a channel.
*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *The name of a channel.
*/ inline Channel& WithName(const Aws::String& value) { SetName(value); return *this;} /** *The name of a channel.
*/ inline Channel& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *The name of a channel.
*/ inline Channel& WithName(const char* value) { SetName(value); return *this;} /** *The ARN of a channel.
*/ inline const Aws::String& GetChannelArn() const{ return m_channelArn; } /** *The ARN of a channel.
*/ inline bool ChannelArnHasBeenSet() const { return m_channelArnHasBeenSet; } /** *The ARN of a channel.
*/ inline void SetChannelArn(const Aws::String& value) { m_channelArnHasBeenSet = true; m_channelArn = value; } /** *The ARN of a channel.
*/ inline void SetChannelArn(Aws::String&& value) { m_channelArnHasBeenSet = true; m_channelArn = std::move(value); } /** *The ARN of a channel.
*/ inline void SetChannelArn(const char* value) { m_channelArnHasBeenSet = true; m_channelArn.assign(value); } /** *The ARN of a channel.
*/ inline Channel& WithChannelArn(const Aws::String& value) { SetChannelArn(value); return *this;} /** *The ARN of a channel.
*/ inline Channel& WithChannelArn(Aws::String&& value) { SetChannelArn(std::move(value)); return *this;} /** *The ARN of a channel.
*/ inline Channel& WithChannelArn(const char* value) { SetChannelArn(value); return *this;} /** *The mode of the channel.
*/ inline const ChannelMode& GetMode() const{ return m_mode; } /** *The mode of the channel.
*/ inline bool ModeHasBeenSet() const { return m_modeHasBeenSet; } /** *The mode of the channel.
*/ inline void SetMode(const ChannelMode& value) { m_modeHasBeenSet = true; m_mode = value; } /** *The mode of the channel.
*/ inline void SetMode(ChannelMode&& value) { m_modeHasBeenSet = true; m_mode = std::move(value); } /** *The mode of the channel.
*/ inline Channel& WithMode(const ChannelMode& value) { SetMode(value); return *this;} /** *The mode of the channel.
*/ inline Channel& WithMode(ChannelMode&& value) { SetMode(std::move(value)); return *this;} /** *The channel's privacy setting.
*/ inline const ChannelPrivacy& GetPrivacy() const{ return m_privacy; } /** *The channel's privacy setting.
*/ inline bool PrivacyHasBeenSet() const { return m_privacyHasBeenSet; } /** *The channel's privacy setting.
*/ inline void SetPrivacy(const ChannelPrivacy& value) { m_privacyHasBeenSet = true; m_privacy = value; } /** *The channel's privacy setting.
*/ inline void SetPrivacy(ChannelPrivacy&& value) { m_privacyHasBeenSet = true; m_privacy = std::move(value); } /** *The channel's privacy setting.
*/ inline Channel& WithPrivacy(const ChannelPrivacy& value) { SetPrivacy(value); return *this;} /** *The channel's privacy setting.
*/ inline Channel& WithPrivacy(ChannelPrivacy&& value) { SetPrivacy(std::move(value)); return *this;} /** *The channel's metadata.
*/ inline const Aws::String& GetMetadata() const{ return m_metadata; } /** *The channel's metadata.
*/ inline bool MetadataHasBeenSet() const { return m_metadataHasBeenSet; } /** *The channel's metadata.
*/ inline void SetMetadata(const Aws::String& value) { m_metadataHasBeenSet = true; m_metadata = value; } /** *The channel's metadata.
*/ inline void SetMetadata(Aws::String&& value) { m_metadataHasBeenSet = true; m_metadata = std::move(value); } /** *The channel's metadata.
*/ inline void SetMetadata(const char* value) { m_metadataHasBeenSet = true; m_metadata.assign(value); } /** *The channel's metadata.
*/ inline Channel& WithMetadata(const Aws::String& value) { SetMetadata(value); return *this;} /** *The channel's metadata.
*/ inline Channel& WithMetadata(Aws::String&& value) { SetMetadata(std::move(value)); return *this;} /** *The channel's metadata.
*/ inline Channel& WithMetadata(const char* value) { SetMetadata(value); return *this;} /** *The AppInstanceUser
who created the channel.
The AppInstanceUser
who created the channel.
The AppInstanceUser
who created the channel.
The AppInstanceUser
who created the channel.
The AppInstanceUser
who created the channel.
The AppInstanceUser
who created the channel.
The time at which the AppInstanceUser
created the channel.
The time at which the AppInstanceUser
created the channel.
The time at which the AppInstanceUser
created the channel.
The time at which the AppInstanceUser
created the channel.
The time at which the AppInstanceUser
created the channel.
The time at which the AppInstanceUser
created the channel.
The time at which a member sent the last message in the channel.
*/ inline const Aws::Utils::DateTime& GetLastMessageTimestamp() const{ return m_lastMessageTimestamp; } /** *The time at which a member sent the last message in the channel.
*/ inline bool LastMessageTimestampHasBeenSet() const { return m_lastMessageTimestampHasBeenSet; } /** *The time at which a member sent the last message in the channel.
*/ inline void SetLastMessageTimestamp(const Aws::Utils::DateTime& value) { m_lastMessageTimestampHasBeenSet = true; m_lastMessageTimestamp = value; } /** *The time at which a member sent the last message in the channel.
*/ inline void SetLastMessageTimestamp(Aws::Utils::DateTime&& value) { m_lastMessageTimestampHasBeenSet = true; m_lastMessageTimestamp = std::move(value); } /** *The time at which a member sent the last message in the channel.
*/ inline Channel& WithLastMessageTimestamp(const Aws::Utils::DateTime& value) { SetLastMessageTimestamp(value); return *this;} /** *The time at which a member sent the last message in the channel.
*/ inline Channel& WithLastMessageTimestamp(Aws::Utils::DateTime&& value) { SetLastMessageTimestamp(std::move(value)); return *this;} /** *The time at which a channel was last updated.
*/ inline const Aws::Utils::DateTime& GetLastUpdatedTimestamp() const{ return m_lastUpdatedTimestamp; } /** *The time at which a channel was last updated.
*/ inline bool LastUpdatedTimestampHasBeenSet() const { return m_lastUpdatedTimestampHasBeenSet; } /** *The time at which a channel was last updated.
*/ inline void SetLastUpdatedTimestamp(const Aws::Utils::DateTime& value) { m_lastUpdatedTimestampHasBeenSet = true; m_lastUpdatedTimestamp = value; } /** *The time at which a channel was last updated.
*/ inline void SetLastUpdatedTimestamp(Aws::Utils::DateTime&& value) { m_lastUpdatedTimestampHasBeenSet = true; m_lastUpdatedTimestamp = std::move(value); } /** *The time at which a channel was last updated.
*/ inline Channel& WithLastUpdatedTimestamp(const Aws::Utils::DateTime& value) { SetLastUpdatedTimestamp(value); return *this;} /** *The time at which a channel was last updated.
*/ inline Channel& WithLastUpdatedTimestamp(Aws::Utils::DateTime&& value) { SetLastUpdatedTimestamp(std::move(value)); return *this;} /** *The ARN of the channel flow.
*/ inline const Aws::String& GetChannelFlowArn() const{ return m_channelFlowArn; } /** *The ARN of the channel flow.
*/ inline bool ChannelFlowArnHasBeenSet() const { return m_channelFlowArnHasBeenSet; } /** *The ARN of the channel flow.
*/ inline void SetChannelFlowArn(const Aws::String& value) { m_channelFlowArnHasBeenSet = true; m_channelFlowArn = value; } /** *The ARN of the channel flow.
*/ inline void SetChannelFlowArn(Aws::String&& value) { m_channelFlowArnHasBeenSet = true; m_channelFlowArn = std::move(value); } /** *The ARN of the channel flow.
*/ inline void SetChannelFlowArn(const char* value) { m_channelFlowArnHasBeenSet = true; m_channelFlowArn.assign(value); } /** *The ARN of the channel flow.
*/ inline Channel& WithChannelFlowArn(const Aws::String& value) { SetChannelFlowArn(value); return *this;} /** *The ARN of the channel flow.
*/ inline Channel& WithChannelFlowArn(Aws::String&& value) { SetChannelFlowArn(std::move(value)); return *this;} /** *The ARN of the channel flow.
*/ inline Channel& WithChannelFlowArn(const char* value) { SetChannelFlowArn(value); return *this;} /** *The attributes required to configure and create an elastic channel. An * elastic channel can support a maximum of 1-million members.
*/ inline const ElasticChannelConfiguration& GetElasticChannelConfiguration() const{ return m_elasticChannelConfiguration; } /** *The attributes required to configure and create an elastic channel. An * elastic channel can support a maximum of 1-million members.
*/ inline bool ElasticChannelConfigurationHasBeenSet() const { return m_elasticChannelConfigurationHasBeenSet; } /** *The attributes required to configure and create an elastic channel. An * elastic channel can support a maximum of 1-million members.
*/ inline void SetElasticChannelConfiguration(const ElasticChannelConfiguration& value) { m_elasticChannelConfigurationHasBeenSet = true; m_elasticChannelConfiguration = value; } /** *The attributes required to configure and create an elastic channel. An * elastic channel can support a maximum of 1-million members.
*/ inline void SetElasticChannelConfiguration(ElasticChannelConfiguration&& value) { m_elasticChannelConfigurationHasBeenSet = true; m_elasticChannelConfiguration = std::move(value); } /** *The attributes required to configure and create an elastic channel. An * elastic channel can support a maximum of 1-million members.
*/ inline Channel& WithElasticChannelConfiguration(const ElasticChannelConfiguration& value) { SetElasticChannelConfiguration(value); return *this;} /** *The attributes required to configure and create an elastic channel. An * elastic channel can support a maximum of 1-million members.
*/ inline Channel& WithElasticChannelConfiguration(ElasticChannelConfiguration&& value) { SetElasticChannelConfiguration(std::move(value)); return *this;} /** *Settings that control when a channel expires.
*/ inline const ExpirationSettings& GetExpirationSettings() const{ return m_expirationSettings; } /** *Settings that control when a channel expires.
*/ inline bool ExpirationSettingsHasBeenSet() const { return m_expirationSettingsHasBeenSet; } /** *Settings that control when a channel expires.
*/ inline void SetExpirationSettings(const ExpirationSettings& value) { m_expirationSettingsHasBeenSet = true; m_expirationSettings = value; } /** *Settings that control when a channel expires.
*/ inline void SetExpirationSettings(ExpirationSettings&& value) { m_expirationSettingsHasBeenSet = true; m_expirationSettings = std::move(value); } /** *Settings that control when a channel expires.
*/ inline Channel& WithExpirationSettings(const ExpirationSettings& value) { SetExpirationSettings(value); return *this;} /** *Settings that control when a channel expires.
*/ inline Channel& WithExpirationSettings(ExpirationSettings&& value) { SetExpirationSettings(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_channelArn; bool m_channelArnHasBeenSet = false; ChannelMode m_mode; bool m_modeHasBeenSet = false; ChannelPrivacy m_privacy; bool m_privacyHasBeenSet = false; Aws::String m_metadata; bool m_metadataHasBeenSet = false; Identity m_createdBy; bool m_createdByHasBeenSet = false; Aws::Utils::DateTime m_createdTimestamp; bool m_createdTimestampHasBeenSet = false; Aws::Utils::DateTime m_lastMessageTimestamp; bool m_lastMessageTimestampHasBeenSet = false; Aws::Utils::DateTime m_lastUpdatedTimestamp; bool m_lastUpdatedTimestampHasBeenSet = false; Aws::String m_channelFlowArn; bool m_channelFlowArnHasBeenSet = false; ElasticChannelConfiguration m_elasticChannelConfiguration; bool m_elasticChannelConfigurationHasBeenSet = false; ExpirationSettings m_expirationSettings; bool m_expirationSettingsHasBeenSet = false; }; } // namespace Model } // namespace ChimeSDKMessaging } // namespace Aws