/*
 * 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 pinpoint-2016-12-01.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.Pinpoint.Model
{
    /// 
    /// Specifies the content and settings for an SMS message that's sent to recipients of
    /// a campaign.
    /// 
    public partial class CampaignSmsMessage
    {
        private string _body;
        private string _entityId;
        private MessageType _messageType;
        private string _originationNumber;
        private string _senderId;
        private string _templateId;
        /// 
        /// Gets and sets the property Body. 
        /// 
        /// The body of the SMS message.
        /// 
        /// 
        public string Body
        {
            get { return this._body; }
            set { this._body = value; }
        }
        // Check to see if Body property is set
        internal bool IsSetBody()
        {
            return this._body != null;
        }
        /// 
        /// Gets and sets the property EntityId. 
        /// 
        /// The entity ID or Principal Entity (PE) id received from the regulatory body for sending
        /// SMS in your country.
        /// 
        /// 
        public string EntityId
        {
            get { return this._entityId; }
            set { this._entityId = value; }
        }
        // Check to see if EntityId property is set
        internal bool IsSetEntityId()
        {
            return this._entityId != null;
        }
        /// 
        /// Gets and sets the property MessageType. 
        /// 
        /// The SMS message type. Valid values are TRANSACTIONAL (for messages that are critical
        /// or time-sensitive, such as a one-time passwords) and PROMOTIONAL (for messsages that
        /// aren't critical or time-sensitive, such as marketing messages).
        /// 
        /// 
        public MessageType MessageType
        {
            get { return this._messageType; }
            set { this._messageType = value; }
        }
        // Check to see if MessageType property is set
        internal bool IsSetMessageType()
        {
            return this._messageType != null;
        }
        /// 
        /// Gets and sets the property OriginationNumber. 
        /// 
        /// The long code to send the SMS message from. This value should be one of the dedicated
        /// long codes that's assigned to your AWS account. Although it isn't required, we recommend
        /// that you specify the long code using an E.164 format to ensure prompt and accurate
        /// delivery of the message. For example, +12065550100.
        /// 
        /// 
        public string OriginationNumber
        {
            get { return this._originationNumber; }
            set { this._originationNumber = value; }
        }
        // Check to see if OriginationNumber property is set
        internal bool IsSetOriginationNumber()
        {
            return this._originationNumber != null;
        }
        /// 
        /// Gets and sets the property SenderId. 
        /// 
        /// The sender ID to display on recipients' devices when they receive the SMS message.
        /// 
        /// 
        public string SenderId
        {
            get { return this._senderId; }
            set { this._senderId = value; }
        }
        // Check to see if SenderId property is set
        internal bool IsSetSenderId()
        {
            return this._senderId != null;
        }
        /// 
        /// Gets and sets the property TemplateId. 
        /// 
        /// The template ID received from the regulatory body for sending SMS in your country.
        /// 
        /// 
        public string TemplateId
        {
            get { return this._templateId; }
            set { this._templateId = value; }
        }
        // Check to see if TemplateId property is set
        internal bool IsSetTemplateId()
        {
            return this._templateId != null;
        }
    }
}