/*
* Copyright 2010-2014 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 email-2010-12-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.SimpleEmail.Model
{
///
/// Message-related information to include in the Delivery Status Notification (DSN) when
/// an email that Amazon SES receives on your behalf bounces.
///
///
///
/// For information about receiving email through Amazon SES, see the Amazon
/// SES Developer Guide.
///
///
public partial class MessageDsn
{
private DateTime? _arrivalDateUtc;
private List _extensionFields = new List();
private string _reportingMta;
///
/// Gets and sets the property ArrivalDateUtc.
///
/// When the message was received by the reporting mail transfer agent (MTA), in RFC
/// 822 date-time format.
///
///
public DateTime ArrivalDateUtc
{
get { return this._arrivalDateUtc.GetValueOrDefault(); }
set { this._arrivalDate = this._arrivalDateUtc = value; }
}
// Check to see if ArrivalDateUtc property is set
internal bool IsSetArrivalDateUtc()
{
return this._arrivalDateUtc.HasValue;
}
///
/// Gets and sets the property ExtensionFields.
///
/// Additional X-headers to include in the DSN.
///
///
public List ExtensionFields
{
get { return this._extensionFields; }
set { this._extensionFields = value; }
}
// Check to see if ExtensionFields property is set
internal bool IsSetExtensionFields()
{
return this._extensionFields != null && this._extensionFields.Count > 0;
}
///
/// Gets and sets the property ReportingMta.
///
/// The reporting MTA that attempted to deliver the message, formatted as specified in
/// RFC 3464 (mta-name-type; mta-name
).
/// The default value is dns; inbound-smtp.[region].amazonaws.com
.
///
///
[AWSProperty(Required=true)]
public string ReportingMta
{
get { return this._reportingMta; }
set { this._reportingMta = value; }
}
// Check to see if ReportingMta property is set
internal bool IsSetReportingMta()
{
return this._reportingMta != null;
}
#region Backwards compatible properties
private DateTime? _arrivalDate;
///
/// Gets and sets the property ArrivalDateUtc.
///
/// This property is deprecated. Setting this property results in non-UTC DateTimes not
/// being marshalled correctly. Use ArrivalDateUtc instead. Setting either ArrivalDate
/// or ArrivalDateUtc results in both ArrivalDate and ArrivalDateUtc being assigned, the
/// latest assignment to either one of the two property is reflected in the value of both.
/// ArrivalDate is provided for backwards compatibility only and assigning a non-Utc DateTime
/// to it results in the wrong timestamp being passed to the service.
///
///
///
/// When the message was received by the reporting mail transfer agent (MTA), in RFC
/// 822 date-time format.
///
///
[Obsolete("Setting this property results in non-UTC DateTimes not being marshalled correctly. " +
"Use ArrivalDateUtc instead. Setting either ArrivalDate or ArrivalDateUtc results in both ArrivalDate and " +
"ArrivalDateUtc being assigned, the latest assignment to either one of the two property is " +
"reflected in the value of both. ArrivalDate is provided for backwards compatibility only and " +
"assigning a non-Utc DateTime to it results in the wrong timestamp being passed to the service.", false)]
public DateTime ArrivalDate
{
get { return this._arrivalDate.GetValueOrDefault(); }
set
{
this._arrivalDate = value;
this._arrivalDateUtc = new DateTime(value.Ticks, DateTimeKind.Utc);
}
}
#endregion
}
}