/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the chime-sdk-messaging-2021-05-15.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.ChimeSDKMessaging.Model { /// /// Container for the parameters to the SendChannelMessage operation. /// Sends a message to a particular channel that the member is a part of. /// /// /// /// The x-amz-chime-bearer request header is mandatory. Use the ARN of the /// AppInstanceUser or AppInstanceBot that makes the API call /// as the value in the header. /// /// /// /// Also, STANDARD messages can be up to 4KB in size and contain metadata. /// Metadata is arbitrary, and you can use it in a variety of ways, such as containing /// a link to an attachment. /// /// /// /// CONTROL messages are limited to 30 bytes and do not contain metadata. /// /// /// public partial class SendChannelMessageRequest : AmazonChimeSDKMessagingRequest { private string _channelArn; private string _chimeBearer; private string _clientRequestToken; private string _content; private string _contentType; private Dictionary _messageAttributes = new Dictionary(); private string _metadata; private ChannelMessagePersistenceType _persistence; private PushNotificationConfiguration _pushNotification; private string _subChannelId; private List _target = new List(); private ChannelMessageType _type; /// /// Gets and sets the property ChannelArn. /// /// The ARN of the channel. /// /// [AWSProperty(Required=true, Min=5, Max=1600)] public string ChannelArn { get { return this._channelArn; } set { this._channelArn = value; } } // Check to see if ChannelArn property is set internal bool IsSetChannelArn() { return this._channelArn != null; } /// /// Gets and sets the property ChimeBearer. /// /// The ARN of the AppInstanceUser or AppInstanceBot that makes /// the API call. /// /// [AWSProperty(Required=true, Min=5, Max=1600)] public string ChimeBearer { get { return this._chimeBearer; } set { this._chimeBearer = value; } } // Check to see if ChimeBearer property is set internal bool IsSetChimeBearer() { return this._chimeBearer != null; } /// /// Gets and sets the property ClientRequestToken. /// /// The Idempotency token for each client request. /// /// [AWSProperty(Sensitive=true, Min=2, Max=64)] public string ClientRequestToken { get { return this._clientRequestToken; } set { this._clientRequestToken = value; } } // Check to see if ClientRequestToken property is set internal bool IsSetClientRequestToken() { return this._clientRequestToken != null; } /// /// Gets and sets the property Content. /// /// The content of the channel message. /// /// [AWSProperty(Required=true, Sensitive=true, Min=1)] public string Content { get { return this._content; } set { this._content = value; } } // Check to see if Content property is set internal bool IsSetContent() { return this._content != null; } /// /// Gets and sets the property ContentType. /// /// The content type of the channel message. /// /// [AWSProperty(Sensitive=true, Min=0, Max=45)] public string ContentType { get { return this._contentType; } set { this._contentType = value; } } // Check to see if ContentType property is set internal bool IsSetContentType() { return this._contentType != null; } /// /// Gets and sets the property MessageAttributes. /// /// The attributes for the message, used for message filtering along with a FilterRule /// defined in the PushNotificationPreferences. /// /// public Dictionary MessageAttributes { get { return this._messageAttributes; } set { this._messageAttributes = value; } } // Check to see if MessageAttributes property is set internal bool IsSetMessageAttributes() { return this._messageAttributes != null && this._messageAttributes.Count > 0; } /// /// Gets and sets the property Metadata. /// /// The optional metadata for each message. /// /// [AWSProperty(Sensitive=true, Min=0, Max=1024)] public string Metadata { get { return this._metadata; } set { this._metadata = value; } } // Check to see if Metadata property is set internal bool IsSetMetadata() { return this._metadata != null; } /// /// Gets and sets the property Persistence. /// /// Boolean that controls whether the message is persisted on the back end. Required. /// /// [AWSProperty(Required=true)] public ChannelMessagePersistenceType Persistence { get { return this._persistence; } set { this._persistence = value; } } // Check to see if Persistence property is set internal bool IsSetPersistence() { return this._persistence != null; } /// /// Gets and sets the property PushNotification. /// /// The push notification configuration of the message. /// /// public PushNotificationConfiguration PushNotification { get { return this._pushNotification; } set { this._pushNotification = value; } } // Check to see if PushNotification property is set internal bool IsSetPushNotification() { return this._pushNotification != null; } /// /// Gets and sets the property SubChannelId. /// /// The ID of the SubChannel in the request. /// /// [AWSProperty(Min=1, Max=128)] public string SubChannelId { get { return this._subChannelId; } set { this._subChannelId = value; } } // Check to see if SubChannelId property is set internal bool IsSetSubChannelId() { return this._subChannelId != null; } /// /// Gets and sets the property Target. /// /// The target of a message. Must be a member of the channel, such as another user, a /// bot, or the sender. Only the target and the sender can view targeted messages. Only /// users who can see targeted messages can take actions on them. However, administrators /// can delete targeted messages that they can’t see. /// /// [AWSProperty(Min=1, Max=1)] public List Target { get { return this._target; } set { this._target = value; } } // Check to see if Target property is set internal bool IsSetTarget() { return this._target != null && this._target.Count > 0; } /// /// Gets and sets the property Type. /// /// The type of message, STANDARD or CONTROL. /// /// /// /// STANDARD messages can be up to 4KB in size and contain metadata. Metadata /// is arbitrary, and you can use it in a variety of ways, such as containing a link to /// an attachment. /// /// /// /// CONTROL messages are limited to 30 bytes and do not contain metadata. /// /// [AWSProperty(Required=true)] public ChannelMessageType Type { get { return this._type; } set { this._type = value; } } // Check to see if Type property is set internal bool IsSetType() { return this._type != null; } } }