/** * 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 #include #include #include #include namespace Aws { namespace ChimeSDKMessaging { namespace Model { /** */ class CreateChannelRequest : public ChimeSDKMessagingRequest { public: AWS_CHIMESDKMESSAGING_API CreateChannelRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateChannel"; } AWS_CHIMESDKMESSAGING_API Aws::String SerializePayload() const override; AWS_CHIMESDKMESSAGING_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The ARN of the channel request.

*/ inline const Aws::String& GetAppInstanceArn() const{ return m_appInstanceArn; } /** *

The ARN of the channel request.

*/ inline bool AppInstanceArnHasBeenSet() const { return m_appInstanceArnHasBeenSet; } /** *

The ARN of the channel request.

*/ inline void SetAppInstanceArn(const Aws::String& value) { m_appInstanceArnHasBeenSet = true; m_appInstanceArn = value; } /** *

The ARN of the channel request.

*/ inline void SetAppInstanceArn(Aws::String&& value) { m_appInstanceArnHasBeenSet = true; m_appInstanceArn = std::move(value); } /** *

The ARN of the channel request.

*/ inline void SetAppInstanceArn(const char* value) { m_appInstanceArnHasBeenSet = true; m_appInstanceArn.assign(value); } /** *

The ARN of the channel request.

*/ inline CreateChannelRequest& WithAppInstanceArn(const Aws::String& value) { SetAppInstanceArn(value); return *this;} /** *

The ARN of the channel request.

*/ inline CreateChannelRequest& WithAppInstanceArn(Aws::String&& value) { SetAppInstanceArn(std::move(value)); return *this;} /** *

The ARN of the channel request.

*/ inline CreateChannelRequest& WithAppInstanceArn(const char* value) { SetAppInstanceArn(value); return *this;} /** *

The name of the channel.

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

The name of the channel.

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

The name of the channel.

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

The name of the channel.

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

The name of the channel.

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

The name of the channel.

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

The name of the channel.

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

The name of the channel.

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

The channel mode: UNRESTRICTED or RESTRICTED. * Administrators, moderators, and channel members can add themselves and other * members to unrestricted channels. Only administrators and moderators can add * members to restricted channels.

*/ inline const ChannelMode& GetMode() const{ return m_mode; } /** *

The channel mode: UNRESTRICTED or RESTRICTED. * Administrators, moderators, and channel members can add themselves and other * members to unrestricted channels. Only administrators and moderators can add * members to restricted channels.

*/ inline bool ModeHasBeenSet() const { return m_modeHasBeenSet; } /** *

The channel mode: UNRESTRICTED or RESTRICTED. * Administrators, moderators, and channel members can add themselves and other * members to unrestricted channels. Only administrators and moderators can add * members to restricted channels.

*/ inline void SetMode(const ChannelMode& value) { m_modeHasBeenSet = true; m_mode = value; } /** *

The channel mode: UNRESTRICTED or RESTRICTED. * Administrators, moderators, and channel members can add themselves and other * members to unrestricted channels. Only administrators and moderators can add * members to restricted channels.

*/ inline void SetMode(ChannelMode&& value) { m_modeHasBeenSet = true; m_mode = std::move(value); } /** *

The channel mode: UNRESTRICTED or RESTRICTED. * Administrators, moderators, and channel members can add themselves and other * members to unrestricted channels. Only administrators and moderators can add * members to restricted channels.

*/ inline CreateChannelRequest& WithMode(const ChannelMode& value) { SetMode(value); return *this;} /** *

The channel mode: UNRESTRICTED or RESTRICTED. * Administrators, moderators, and channel members can add themselves and other * members to unrestricted channels. Only administrators and moderators can add * members to restricted channels.

*/ inline CreateChannelRequest& WithMode(ChannelMode&& value) { SetMode(std::move(value)); return *this;} /** *

The channel's privacy level: PUBLIC or PRIVATE. * Private channels aren't discoverable by users outside the channel. Public * channels are discoverable by anyone in the AppInstance.

*/ inline const ChannelPrivacy& GetPrivacy() const{ return m_privacy; } /** *

The channel's privacy level: PUBLIC or PRIVATE. * Private channels aren't discoverable by users outside the channel. Public * channels are discoverable by anyone in the AppInstance.

*/ inline bool PrivacyHasBeenSet() const { return m_privacyHasBeenSet; } /** *

The channel's privacy level: PUBLIC or PRIVATE. * Private channels aren't discoverable by users outside the channel. Public * channels are discoverable by anyone in the AppInstance.

*/ inline void SetPrivacy(const ChannelPrivacy& value) { m_privacyHasBeenSet = true; m_privacy = value; } /** *

The channel's privacy level: PUBLIC or PRIVATE. * Private channels aren't discoverable by users outside the channel. Public * channels are discoverable by anyone in the AppInstance.

*/ inline void SetPrivacy(ChannelPrivacy&& value) { m_privacyHasBeenSet = true; m_privacy = std::move(value); } /** *

The channel's privacy level: PUBLIC or PRIVATE. * Private channels aren't discoverable by users outside the channel. Public * channels are discoverable by anyone in the AppInstance.

*/ inline CreateChannelRequest& WithPrivacy(const ChannelPrivacy& value) { SetPrivacy(value); return *this;} /** *

The channel's privacy level: PUBLIC or PRIVATE. * Private channels aren't discoverable by users outside the channel. Public * channels are discoverable by anyone in the AppInstance.

*/ inline CreateChannelRequest& WithPrivacy(ChannelPrivacy&& value) { SetPrivacy(std::move(value)); return *this;} /** *

The metadata of the creation request. Limited to 1KB and UTF-8.

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

The metadata of the creation request. Limited to 1KB and UTF-8.

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

The metadata of the creation request. Limited to 1KB and UTF-8.

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

The metadata of the creation request. Limited to 1KB and UTF-8.

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

The metadata of the creation request. Limited to 1KB and UTF-8.

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

The metadata of the creation request. Limited to 1KB and UTF-8.

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

The metadata of the creation request. Limited to 1KB and UTF-8.

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

The metadata of the creation request. Limited to 1KB and UTF-8.

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

The client token for the request. An Idempotency token.

*/ inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; } /** *

The client token for the request. An Idempotency token.

*/ inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; } /** *

The client token for the request. An Idempotency token.

*/ inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; } /** *

The client token for the request. An Idempotency token.

*/ inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); } /** *

The client token for the request. An Idempotency token.

*/ inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); } /** *

The client token for the request. An Idempotency token.

*/ inline CreateChannelRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;} /** *

The client token for the request. An Idempotency token.

*/ inline CreateChannelRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;} /** *

The client token for the request. An Idempotency token.

*/ inline CreateChannelRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;} /** *

The tags for the creation request.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The tags for the creation request.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tags for the creation request.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tags for the creation request.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tags for the creation request.

*/ inline CreateChannelRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The tags for the creation request.

*/ inline CreateChannelRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The tags for the creation request.

*/ inline CreateChannelRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The tags for the creation request.

*/ inline CreateChannelRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The ARN of the AppInstanceUser or AppInstanceBot * that makes the API call.

*/ inline const Aws::String& GetChimeBearer() const{ return m_chimeBearer; } /** *

The ARN of the AppInstanceUser or AppInstanceBot * that makes the API call.

*/ inline bool ChimeBearerHasBeenSet() const { return m_chimeBearerHasBeenSet; } /** *

The ARN of the AppInstanceUser or AppInstanceBot * that makes the API call.

*/ inline void SetChimeBearer(const Aws::String& value) { m_chimeBearerHasBeenSet = true; m_chimeBearer = value; } /** *

The ARN of the AppInstanceUser or AppInstanceBot * that makes the API call.

*/ inline void SetChimeBearer(Aws::String&& value) { m_chimeBearerHasBeenSet = true; m_chimeBearer = std::move(value); } /** *

The ARN of the AppInstanceUser or AppInstanceBot * that makes the API call.

*/ inline void SetChimeBearer(const char* value) { m_chimeBearerHasBeenSet = true; m_chimeBearer.assign(value); } /** *

The ARN of the AppInstanceUser or AppInstanceBot * that makes the API call.

*/ inline CreateChannelRequest& WithChimeBearer(const Aws::String& value) { SetChimeBearer(value); return *this;} /** *

The ARN of the AppInstanceUser or AppInstanceBot * that makes the API call.

*/ inline CreateChannelRequest& WithChimeBearer(Aws::String&& value) { SetChimeBearer(std::move(value)); return *this;} /** *

The ARN of the AppInstanceUser or AppInstanceBot * that makes the API call.

*/ inline CreateChannelRequest& WithChimeBearer(const char* value) { SetChimeBearer(value); return *this;} /** *

The ID of the channel in the request.

*/ inline const Aws::String& GetChannelId() const{ return m_channelId; } /** *

The ID of the channel in the request.

*/ inline bool ChannelIdHasBeenSet() const { return m_channelIdHasBeenSet; } /** *

The ID of the channel in the request.

*/ inline void SetChannelId(const Aws::String& value) { m_channelIdHasBeenSet = true; m_channelId = value; } /** *

The ID of the channel in the request.

*/ inline void SetChannelId(Aws::String&& value) { m_channelIdHasBeenSet = true; m_channelId = std::move(value); } /** *

The ID of the channel in the request.

*/ inline void SetChannelId(const char* value) { m_channelIdHasBeenSet = true; m_channelId.assign(value); } /** *

The ID of the channel in the request.

*/ inline CreateChannelRequest& WithChannelId(const Aws::String& value) { SetChannelId(value); return *this;} /** *

The ID of the channel in the request.

*/ inline CreateChannelRequest& WithChannelId(Aws::String&& value) { SetChannelId(std::move(value)); return *this;} /** *

The ID of the channel in the request.

*/ inline CreateChannelRequest& WithChannelId(const char* value) { SetChannelId(value); return *this;} /** *

The ARNs of the channel members in the request.

*/ inline const Aws::Vector& GetMemberArns() const{ return m_memberArns; } /** *

The ARNs of the channel members in the request.

*/ inline bool MemberArnsHasBeenSet() const { return m_memberArnsHasBeenSet; } /** *

The ARNs of the channel members in the request.

*/ inline void SetMemberArns(const Aws::Vector& value) { m_memberArnsHasBeenSet = true; m_memberArns = value; } /** *

The ARNs of the channel members in the request.

*/ inline void SetMemberArns(Aws::Vector&& value) { m_memberArnsHasBeenSet = true; m_memberArns = std::move(value); } /** *

The ARNs of the channel members in the request.

*/ inline CreateChannelRequest& WithMemberArns(const Aws::Vector& value) { SetMemberArns(value); return *this;} /** *

The ARNs of the channel members in the request.

*/ inline CreateChannelRequest& WithMemberArns(Aws::Vector&& value) { SetMemberArns(std::move(value)); return *this;} /** *

The ARNs of the channel members in the request.

*/ inline CreateChannelRequest& AddMemberArns(const Aws::String& value) { m_memberArnsHasBeenSet = true; m_memberArns.push_back(value); return *this; } /** *

The ARNs of the channel members in the request.

*/ inline CreateChannelRequest& AddMemberArns(Aws::String&& value) { m_memberArnsHasBeenSet = true; m_memberArns.push_back(std::move(value)); return *this; } /** *

The ARNs of the channel members in the request.

*/ inline CreateChannelRequest& AddMemberArns(const char* value) { m_memberArnsHasBeenSet = true; m_memberArns.push_back(value); return *this; } /** *

The ARNs of the channel moderators in the request.

*/ inline const Aws::Vector& GetModeratorArns() const{ return m_moderatorArns; } /** *

The ARNs of the channel moderators in the request.

*/ inline bool ModeratorArnsHasBeenSet() const { return m_moderatorArnsHasBeenSet; } /** *

The ARNs of the channel moderators in the request.

*/ inline void SetModeratorArns(const Aws::Vector& value) { m_moderatorArnsHasBeenSet = true; m_moderatorArns = value; } /** *

The ARNs of the channel moderators in the request.

*/ inline void SetModeratorArns(Aws::Vector&& value) { m_moderatorArnsHasBeenSet = true; m_moderatorArns = std::move(value); } /** *

The ARNs of the channel moderators in the request.

*/ inline CreateChannelRequest& WithModeratorArns(const Aws::Vector& value) { SetModeratorArns(value); return *this;} /** *

The ARNs of the channel moderators in the request.

*/ inline CreateChannelRequest& WithModeratorArns(Aws::Vector&& value) { SetModeratorArns(std::move(value)); return *this;} /** *

The ARNs of the channel moderators in the request.

*/ inline CreateChannelRequest& AddModeratorArns(const Aws::String& value) { m_moderatorArnsHasBeenSet = true; m_moderatorArns.push_back(value); return *this; } /** *

The ARNs of the channel moderators in the request.

*/ inline CreateChannelRequest& AddModeratorArns(Aws::String&& value) { m_moderatorArnsHasBeenSet = true; m_moderatorArns.push_back(std::move(value)); return *this; } /** *

The ARNs of the channel moderators in the request.

*/ inline CreateChannelRequest& AddModeratorArns(const char* value) { m_moderatorArnsHasBeenSet = true; m_moderatorArns.push_back(value); return *this; } /** *

The attributes required to configure and create an elastic channel. An * elastic channel can support a maximum of 1-million users, excluding * moderators.

*/ 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 users, excluding * moderators.

*/ 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 users, excluding * moderators.

*/ 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 users, excluding * moderators.

*/ 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 users, excluding * moderators.

*/ inline CreateChannelRequest& 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 users, excluding * moderators.

*/ inline CreateChannelRequest& WithElasticChannelConfiguration(ElasticChannelConfiguration&& value) { SetElasticChannelConfiguration(std::move(value)); return *this;} /** *

Settings that control the interval after which the channel is automatically * deleted.

*/ inline const ExpirationSettings& GetExpirationSettings() const{ return m_expirationSettings; } /** *

Settings that control the interval after which the channel is automatically * deleted.

*/ inline bool ExpirationSettingsHasBeenSet() const { return m_expirationSettingsHasBeenSet; } /** *

Settings that control the interval after which the channel is automatically * deleted.

*/ inline void SetExpirationSettings(const ExpirationSettings& value) { m_expirationSettingsHasBeenSet = true; m_expirationSettings = value; } /** *

Settings that control the interval after which the channel is automatically * deleted.

*/ inline void SetExpirationSettings(ExpirationSettings&& value) { m_expirationSettingsHasBeenSet = true; m_expirationSettings = std::move(value); } /** *

Settings that control the interval after which the channel is automatically * deleted.

*/ inline CreateChannelRequest& WithExpirationSettings(const ExpirationSettings& value) { SetExpirationSettings(value); return *this;} /** *

Settings that control the interval after which the channel is automatically * deleted.

*/ inline CreateChannelRequest& WithExpirationSettings(ExpirationSettings&& value) { SetExpirationSettings(std::move(value)); return *this;} private: Aws::String m_appInstanceArn; bool m_appInstanceArnHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; ChannelMode m_mode; bool m_modeHasBeenSet = false; ChannelPrivacy m_privacy; bool m_privacyHasBeenSet = false; Aws::String m_metadata; bool m_metadataHasBeenSet = false; Aws::String m_clientRequestToken; bool m_clientRequestTokenHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_chimeBearer; bool m_chimeBearerHasBeenSet = false; Aws::String m_channelId; bool m_channelIdHasBeenSet = false; Aws::Vector m_memberArns; bool m_memberArnsHasBeenSet = false; Aws::Vector m_moderatorArns; bool m_moderatorArnsHasBeenSet = false; ElasticChannelConfiguration m_elasticChannelConfiguration; bool m_elasticChannelConfigurationHasBeenSet = false; ExpirationSettings m_expirationSettings; bool m_expirationSettingsHasBeenSet = false; }; } // namespace Model } // namespace ChimeSDKMessaging } // namespace Aws