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/macie2/Macie2_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/DateTime.h>
10 #include <aws/macie2/model/RelationshipStatus.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace Macie2
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Provides information about an Amazon Macie membership invitation that was
30    * received by an account.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/macie2-2020-01-01/Invitation">AWS
32    * API Reference</a></p>
33    */
34   class AWS_MACIE2_API Invitation
35   {
36   public:
37     Invitation();
38     Invitation(Aws::Utils::Json::JsonView jsonValue);
39     Invitation& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The Amazon Web Services account ID for the account that sent the
45      * invitation.</p>
46      */
GetAccountId()47     inline const Aws::String& GetAccountId() const{ return m_accountId; }
48 
49     /**
50      * <p>The Amazon Web Services account ID for the account that sent the
51      * invitation.</p>
52      */
AccountIdHasBeenSet()53     inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
54 
55     /**
56      * <p>The Amazon Web Services account ID for the account that sent the
57      * invitation.</p>
58      */
SetAccountId(const Aws::String & value)59     inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; }
60 
61     /**
62      * <p>The Amazon Web Services account ID for the account that sent the
63      * invitation.</p>
64      */
SetAccountId(Aws::String && value)65     inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); }
66 
67     /**
68      * <p>The Amazon Web Services account ID for the account that sent the
69      * invitation.</p>
70      */
SetAccountId(const char * value)71     inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); }
72 
73     /**
74      * <p>The Amazon Web Services account ID for the account that sent the
75      * invitation.</p>
76      */
WithAccountId(const Aws::String & value)77     inline Invitation& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;}
78 
79     /**
80      * <p>The Amazon Web Services account ID for the account that sent the
81      * invitation.</p>
82      */
WithAccountId(Aws::String && value)83     inline Invitation& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;}
84 
85     /**
86      * <p>The Amazon Web Services account ID for the account that sent the
87      * invitation.</p>
88      */
WithAccountId(const char * value)89     inline Invitation& WithAccountId(const char* value) { SetAccountId(value); return *this;}
90 
91 
92     /**
93      * <p>The unique identifier for the invitation. Amazon Macie uses this identifier
94      * to validate the inviter account with the invitee account.</p>
95      */
GetInvitationId()96     inline const Aws::String& GetInvitationId() const{ return m_invitationId; }
97 
98     /**
99      * <p>The unique identifier for the invitation. Amazon Macie uses this identifier
100      * to validate the inviter account with the invitee account.</p>
101      */
InvitationIdHasBeenSet()102     inline bool InvitationIdHasBeenSet() const { return m_invitationIdHasBeenSet; }
103 
104     /**
105      * <p>The unique identifier for the invitation. Amazon Macie uses this identifier
106      * to validate the inviter account with the invitee account.</p>
107      */
SetInvitationId(const Aws::String & value)108     inline void SetInvitationId(const Aws::String& value) { m_invitationIdHasBeenSet = true; m_invitationId = value; }
109 
110     /**
111      * <p>The unique identifier for the invitation. Amazon Macie uses this identifier
112      * to validate the inviter account with the invitee account.</p>
113      */
SetInvitationId(Aws::String && value)114     inline void SetInvitationId(Aws::String&& value) { m_invitationIdHasBeenSet = true; m_invitationId = std::move(value); }
115 
116     /**
117      * <p>The unique identifier for the invitation. Amazon Macie uses this identifier
118      * to validate the inviter account with the invitee account.</p>
119      */
SetInvitationId(const char * value)120     inline void SetInvitationId(const char* value) { m_invitationIdHasBeenSet = true; m_invitationId.assign(value); }
121 
122     /**
123      * <p>The unique identifier for the invitation. Amazon Macie uses this identifier
124      * to validate the inviter account with the invitee account.</p>
125      */
WithInvitationId(const Aws::String & value)126     inline Invitation& WithInvitationId(const Aws::String& value) { SetInvitationId(value); return *this;}
127 
128     /**
129      * <p>The unique identifier for the invitation. Amazon Macie uses this identifier
130      * to validate the inviter account with the invitee account.</p>
131      */
WithInvitationId(Aws::String && value)132     inline Invitation& WithInvitationId(Aws::String&& value) { SetInvitationId(std::move(value)); return *this;}
133 
134     /**
135      * <p>The unique identifier for the invitation. Amazon Macie uses this identifier
136      * to validate the inviter account with the invitee account.</p>
137      */
WithInvitationId(const char * value)138     inline Invitation& WithInvitationId(const char* value) { SetInvitationId(value); return *this;}
139 
140 
141     /**
142      * <p>The date and time, in UTC and extended ISO 8601 format, when the invitation
143      * was sent.</p>
144      */
GetInvitedAt()145     inline const Aws::Utils::DateTime& GetInvitedAt() const{ return m_invitedAt; }
146 
147     /**
148      * <p>The date and time, in UTC and extended ISO 8601 format, when the invitation
149      * was sent.</p>
150      */
InvitedAtHasBeenSet()151     inline bool InvitedAtHasBeenSet() const { return m_invitedAtHasBeenSet; }
152 
153     /**
154      * <p>The date and time, in UTC and extended ISO 8601 format, when the invitation
155      * was sent.</p>
156      */
SetInvitedAt(const Aws::Utils::DateTime & value)157     inline void SetInvitedAt(const Aws::Utils::DateTime& value) { m_invitedAtHasBeenSet = true; m_invitedAt = value; }
158 
159     /**
160      * <p>The date and time, in UTC and extended ISO 8601 format, when the invitation
161      * was sent.</p>
162      */
SetInvitedAt(Aws::Utils::DateTime && value)163     inline void SetInvitedAt(Aws::Utils::DateTime&& value) { m_invitedAtHasBeenSet = true; m_invitedAt = std::move(value); }
164 
165     /**
166      * <p>The date and time, in UTC and extended ISO 8601 format, when the invitation
167      * was sent.</p>
168      */
WithInvitedAt(const Aws::Utils::DateTime & value)169     inline Invitation& WithInvitedAt(const Aws::Utils::DateTime& value) { SetInvitedAt(value); return *this;}
170 
171     /**
172      * <p>The date and time, in UTC and extended ISO 8601 format, when the invitation
173      * was sent.</p>
174      */
WithInvitedAt(Aws::Utils::DateTime && value)175     inline Invitation& WithInvitedAt(Aws::Utils::DateTime&& value) { SetInvitedAt(std::move(value)); return *this;}
176 
177 
178     /**
179      * <p>The status of the relationship between the account that sent the invitation
180      * (<i>inviter account</i>) and the account that received the invitation
181      * (<i>invitee account</i>).</p>
182      */
GetRelationshipStatus()183     inline const RelationshipStatus& GetRelationshipStatus() const{ return m_relationshipStatus; }
184 
185     /**
186      * <p>The status of the relationship between the account that sent the invitation
187      * (<i>inviter account</i>) and the account that received the invitation
188      * (<i>invitee account</i>).</p>
189      */
RelationshipStatusHasBeenSet()190     inline bool RelationshipStatusHasBeenSet() const { return m_relationshipStatusHasBeenSet; }
191 
192     /**
193      * <p>The status of the relationship between the account that sent the invitation
194      * (<i>inviter account</i>) and the account that received the invitation
195      * (<i>invitee account</i>).</p>
196      */
SetRelationshipStatus(const RelationshipStatus & value)197     inline void SetRelationshipStatus(const RelationshipStatus& value) { m_relationshipStatusHasBeenSet = true; m_relationshipStatus = value; }
198 
199     /**
200      * <p>The status of the relationship between the account that sent the invitation
201      * (<i>inviter account</i>) and the account that received the invitation
202      * (<i>invitee account</i>).</p>
203      */
SetRelationshipStatus(RelationshipStatus && value)204     inline void SetRelationshipStatus(RelationshipStatus&& value) { m_relationshipStatusHasBeenSet = true; m_relationshipStatus = std::move(value); }
205 
206     /**
207      * <p>The status of the relationship between the account that sent the invitation
208      * (<i>inviter account</i>) and the account that received the invitation
209      * (<i>invitee account</i>).</p>
210      */
WithRelationshipStatus(const RelationshipStatus & value)211     inline Invitation& WithRelationshipStatus(const RelationshipStatus& value) { SetRelationshipStatus(value); return *this;}
212 
213     /**
214      * <p>The status of the relationship between the account that sent the invitation
215      * (<i>inviter account</i>) and the account that received the invitation
216      * (<i>invitee account</i>).</p>
217      */
WithRelationshipStatus(RelationshipStatus && value)218     inline Invitation& WithRelationshipStatus(RelationshipStatus&& value) { SetRelationshipStatus(std::move(value)); return *this;}
219 
220   private:
221 
222     Aws::String m_accountId;
223     bool m_accountIdHasBeenSet;
224 
225     Aws::String m_invitationId;
226     bool m_invitationIdHasBeenSet;
227 
228     Aws::Utils::DateTime m_invitedAt;
229     bool m_invitedAtHasBeenSet;
230 
231     RelationshipStatus m_relationshipStatus;
232     bool m_relationshipStatusHasBeenSet;
233   };
234 
235 } // namespace Model
236 } // namespace Macie2
237 } // namespace Aws
238