1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/workmail/WorkMail_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/workmail/model/DnsRecordVerificationStatus.h>
10 #include <aws/workmail/model/DnsRecord.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 template<typename RESULT_TYPE>
16 class AmazonWebServiceResult;
17 
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23 } // namespace Json
24 } // namespace Utils
25 namespace WorkMail
26 {
27 namespace Model
28 {
29   class AWS_WORKMAIL_API GetMailDomainResult
30   {
31   public:
32     GetMailDomainResult();
33     GetMailDomainResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
34     GetMailDomainResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
35 
36 
37     /**
38      * <p>A list of the DNS records that Amazon WorkMail recommends adding in your DNS
39      * provider for the best user experience. The records configure your domain with
40      * DMARC, SPF, DKIM, and direct incoming email traffic to SES. See admin guide for
41      * more details.</p>
42      */
GetRecords()43     inline const Aws::Vector<DnsRecord>& GetRecords() const{ return m_records; }
44 
45     /**
46      * <p>A list of the DNS records that Amazon WorkMail recommends adding in your DNS
47      * provider for the best user experience. The records configure your domain with
48      * DMARC, SPF, DKIM, and direct incoming email traffic to SES. See admin guide for
49      * more details.</p>
50      */
SetRecords(const Aws::Vector<DnsRecord> & value)51     inline void SetRecords(const Aws::Vector<DnsRecord>& value) { m_records = value; }
52 
53     /**
54      * <p>A list of the DNS records that Amazon WorkMail recommends adding in your DNS
55      * provider for the best user experience. The records configure your domain with
56      * DMARC, SPF, DKIM, and direct incoming email traffic to SES. See admin guide for
57      * more details.</p>
58      */
SetRecords(Aws::Vector<DnsRecord> && value)59     inline void SetRecords(Aws::Vector<DnsRecord>&& value) { m_records = std::move(value); }
60 
61     /**
62      * <p>A list of the DNS records that Amazon WorkMail recommends adding in your DNS
63      * provider for the best user experience. The records configure your domain with
64      * DMARC, SPF, DKIM, and direct incoming email traffic to SES. See admin guide for
65      * more details.</p>
66      */
WithRecords(const Aws::Vector<DnsRecord> & value)67     inline GetMailDomainResult& WithRecords(const Aws::Vector<DnsRecord>& value) { SetRecords(value); return *this;}
68 
69     /**
70      * <p>A list of the DNS records that Amazon WorkMail recommends adding in your DNS
71      * provider for the best user experience. The records configure your domain with
72      * DMARC, SPF, DKIM, and direct incoming email traffic to SES. See admin guide for
73      * more details.</p>
74      */
WithRecords(Aws::Vector<DnsRecord> && value)75     inline GetMailDomainResult& WithRecords(Aws::Vector<DnsRecord>&& value) { SetRecords(std::move(value)); return *this;}
76 
77     /**
78      * <p>A list of the DNS records that Amazon WorkMail recommends adding in your DNS
79      * provider for the best user experience. The records configure your domain with
80      * DMARC, SPF, DKIM, and direct incoming email traffic to SES. See admin guide for
81      * more details.</p>
82      */
AddRecords(const DnsRecord & value)83     inline GetMailDomainResult& AddRecords(const DnsRecord& value) { m_records.push_back(value); return *this; }
84 
85     /**
86      * <p>A list of the DNS records that Amazon WorkMail recommends adding in your DNS
87      * provider for the best user experience. The records configure your domain with
88      * DMARC, SPF, DKIM, and direct incoming email traffic to SES. See admin guide for
89      * more details.</p>
90      */
AddRecords(DnsRecord && value)91     inline GetMailDomainResult& AddRecords(DnsRecord&& value) { m_records.push_back(std::move(value)); return *this; }
92 
93 
94     /**
95      * <p>Specifies whether the domain is a test domain provided by WorkMail, or a
96      * custom domain.</p>
97      */
GetIsTestDomain()98     inline bool GetIsTestDomain() const{ return m_isTestDomain; }
99 
100     /**
101      * <p>Specifies whether the domain is a test domain provided by WorkMail, or a
102      * custom domain.</p>
103      */
SetIsTestDomain(bool value)104     inline void SetIsTestDomain(bool value) { m_isTestDomain = value; }
105 
106     /**
107      * <p>Specifies whether the domain is a test domain provided by WorkMail, or a
108      * custom domain.</p>
109      */
WithIsTestDomain(bool value)110     inline GetMailDomainResult& WithIsTestDomain(bool value) { SetIsTestDomain(value); return *this;}
111 
112 
113     /**
114      * <p>Specifies whether the domain is the default domain for your organization.</p>
115      */
GetIsDefault()116     inline bool GetIsDefault() const{ return m_isDefault; }
117 
118     /**
119      * <p>Specifies whether the domain is the default domain for your organization.</p>
120      */
SetIsDefault(bool value)121     inline void SetIsDefault(bool value) { m_isDefault = value; }
122 
123     /**
124      * <p>Specifies whether the domain is the default domain for your organization.</p>
125      */
WithIsDefault(bool value)126     inline GetMailDomainResult& WithIsDefault(bool value) { SetIsDefault(value); return *this;}
127 
128 
129     /**
130      * <p> Indicates the status of the domain ownership verification.</p>
131      */
GetOwnershipVerificationStatus()132     inline const DnsRecordVerificationStatus& GetOwnershipVerificationStatus() const{ return m_ownershipVerificationStatus; }
133 
134     /**
135      * <p> Indicates the status of the domain ownership verification.</p>
136      */
SetOwnershipVerificationStatus(const DnsRecordVerificationStatus & value)137     inline void SetOwnershipVerificationStatus(const DnsRecordVerificationStatus& value) { m_ownershipVerificationStatus = value; }
138 
139     /**
140      * <p> Indicates the status of the domain ownership verification.</p>
141      */
SetOwnershipVerificationStatus(DnsRecordVerificationStatus && value)142     inline void SetOwnershipVerificationStatus(DnsRecordVerificationStatus&& value) { m_ownershipVerificationStatus = std::move(value); }
143 
144     /**
145      * <p> Indicates the status of the domain ownership verification.</p>
146      */
WithOwnershipVerificationStatus(const DnsRecordVerificationStatus & value)147     inline GetMailDomainResult& WithOwnershipVerificationStatus(const DnsRecordVerificationStatus& value) { SetOwnershipVerificationStatus(value); return *this;}
148 
149     /**
150      * <p> Indicates the status of the domain ownership verification.</p>
151      */
WithOwnershipVerificationStatus(DnsRecordVerificationStatus && value)152     inline GetMailDomainResult& WithOwnershipVerificationStatus(DnsRecordVerificationStatus&& value) { SetOwnershipVerificationStatus(std::move(value)); return *this;}
153 
154 
155     /**
156      * <p>Indicates the status of a DKIM verification.</p>
157      */
GetDkimVerificationStatus()158     inline const DnsRecordVerificationStatus& GetDkimVerificationStatus() const{ return m_dkimVerificationStatus; }
159 
160     /**
161      * <p>Indicates the status of a DKIM verification.</p>
162      */
SetDkimVerificationStatus(const DnsRecordVerificationStatus & value)163     inline void SetDkimVerificationStatus(const DnsRecordVerificationStatus& value) { m_dkimVerificationStatus = value; }
164 
165     /**
166      * <p>Indicates the status of a DKIM verification.</p>
167      */
SetDkimVerificationStatus(DnsRecordVerificationStatus && value)168     inline void SetDkimVerificationStatus(DnsRecordVerificationStatus&& value) { m_dkimVerificationStatus = std::move(value); }
169 
170     /**
171      * <p>Indicates the status of a DKIM verification.</p>
172      */
WithDkimVerificationStatus(const DnsRecordVerificationStatus & value)173     inline GetMailDomainResult& WithDkimVerificationStatus(const DnsRecordVerificationStatus& value) { SetDkimVerificationStatus(value); return *this;}
174 
175     /**
176      * <p>Indicates the status of a DKIM verification.</p>
177      */
WithDkimVerificationStatus(DnsRecordVerificationStatus && value)178     inline GetMailDomainResult& WithDkimVerificationStatus(DnsRecordVerificationStatus&& value) { SetDkimVerificationStatus(std::move(value)); return *this;}
179 
180   private:
181 
182     Aws::Vector<DnsRecord> m_records;
183 
184     bool m_isTestDomain;
185 
186     bool m_isDefault;
187 
188     DnsRecordVerificationStatus m_ownershipVerificationStatus;
189 
190     DnsRecordVerificationStatus m_dkimVerificationStatus;
191   };
192 
193 } // namespace Model
194 } // namespace WorkMail
195 } // namespace Aws
196