/** * 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 namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace SES { namespace 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.

See Also:

AWS * API Reference

*/ class MessageDsn { public: AWS_SES_API MessageDsn(); AWS_SES_API MessageDsn(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_SES_API MessageDsn& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_SES_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_SES_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

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.

*/ inline const Aws::String& GetReportingMta() const{ return m_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.

*/ inline bool ReportingMtaHasBeenSet() const { return m_reportingMtaHasBeenSet; } /** *

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.

*/ inline void SetReportingMta(const Aws::String& value) { m_reportingMtaHasBeenSet = true; m_reportingMta = value; } /** *

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.

*/ inline void SetReportingMta(Aws::String&& value) { m_reportingMtaHasBeenSet = true; m_reportingMta = std::move(value); } /** *

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.

*/ inline void SetReportingMta(const char* value) { m_reportingMtaHasBeenSet = true; m_reportingMta.assign(value); } /** *

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.

*/ inline MessageDsn& WithReportingMta(const Aws::String& value) { SetReportingMta(value); return *this;} /** *

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.

*/ inline MessageDsn& WithReportingMta(Aws::String&& value) { SetReportingMta(std::move(value)); return *this;} /** *

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.

*/ inline MessageDsn& WithReportingMta(const char* value) { SetReportingMta(value); return *this;} /** *

When the message was received by the reporting mail transfer agent (MTA), in * RFC 822 date-time format.

*/ inline const Aws::Utils::DateTime& GetArrivalDate() const{ return m_arrivalDate; } /** *

When the message was received by the reporting mail transfer agent (MTA), in * RFC 822 date-time format.

*/ inline bool ArrivalDateHasBeenSet() const { return m_arrivalDateHasBeenSet; } /** *

When the message was received by the reporting mail transfer agent (MTA), in * RFC 822 date-time format.

*/ inline void SetArrivalDate(const Aws::Utils::DateTime& value) { m_arrivalDateHasBeenSet = true; m_arrivalDate = value; } /** *

When the message was received by the reporting mail transfer agent (MTA), in * RFC 822 date-time format.

*/ inline void SetArrivalDate(Aws::Utils::DateTime&& value) { m_arrivalDateHasBeenSet = true; m_arrivalDate = std::move(value); } /** *

When the message was received by the reporting mail transfer agent (MTA), in * RFC 822 date-time format.

*/ inline MessageDsn& WithArrivalDate(const Aws::Utils::DateTime& value) { SetArrivalDate(value); return *this;} /** *

When the message was received by the reporting mail transfer agent (MTA), in * RFC 822 date-time format.

*/ inline MessageDsn& WithArrivalDate(Aws::Utils::DateTime&& value) { SetArrivalDate(std::move(value)); return *this;} /** *

Additional X-headers to include in the DSN.

*/ inline const Aws::Vector& GetExtensionFields() const{ return m_extensionFields; } /** *

Additional X-headers to include in the DSN.

*/ inline bool ExtensionFieldsHasBeenSet() const { return m_extensionFieldsHasBeenSet; } /** *

Additional X-headers to include in the DSN.

*/ inline void SetExtensionFields(const Aws::Vector& value) { m_extensionFieldsHasBeenSet = true; m_extensionFields = value; } /** *

Additional X-headers to include in the DSN.

*/ inline void SetExtensionFields(Aws::Vector&& value) { m_extensionFieldsHasBeenSet = true; m_extensionFields = std::move(value); } /** *

Additional X-headers to include in the DSN.

*/ inline MessageDsn& WithExtensionFields(const Aws::Vector& value) { SetExtensionFields(value); return *this;} /** *

Additional X-headers to include in the DSN.

*/ inline MessageDsn& WithExtensionFields(Aws::Vector&& value) { SetExtensionFields(std::move(value)); return *this;} /** *

Additional X-headers to include in the DSN.

*/ inline MessageDsn& AddExtensionFields(const ExtensionField& value) { m_extensionFieldsHasBeenSet = true; m_extensionFields.push_back(value); return *this; } /** *

Additional X-headers to include in the DSN.

*/ inline MessageDsn& AddExtensionFields(ExtensionField&& value) { m_extensionFieldsHasBeenSet = true; m_extensionFields.push_back(std::move(value)); return *this; } private: Aws::String m_reportingMta; bool m_reportingMtaHasBeenSet = false; Aws::Utils::DateTime m_arrivalDate; bool m_arrivalDateHasBeenSet = false; Aws::Vector m_extensionFields; bool m_extensionFieldsHasBeenSet = false; }; } // namespace Model } // namespace SES } // namespace Aws