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/sso-admin/SSOAdmin_EXPORTS.h>
8 #include <aws/sso-admin/model/StatusValues.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/sso-admin/model/TargetType.h>
11 #include <aws/sso-admin/model/PrincipalType.h>
12 #include <aws/core/utils/DateTime.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace SSOAdmin
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p>The status of the creation or deletion operation of an assignment that a
32    * principal needs to access an account.</p><p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/sso-admin-2020-07-20/AccountAssignmentOperationStatus">AWS
34    * API Reference</a></p>
35    */
36   class AWS_SSOADMIN_API AccountAssignmentOperationStatus
37   {
38   public:
39     AccountAssignmentOperationStatus();
40     AccountAssignmentOperationStatus(Aws::Utils::Json::JsonView jsonValue);
41     AccountAssignmentOperationStatus& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p>The status of the permission set provisioning process.</p>
47      */
GetStatus()48     inline const StatusValues& GetStatus() const{ return m_status; }
49 
50     /**
51      * <p>The status of the permission set provisioning process.</p>
52      */
StatusHasBeenSet()53     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
54 
55     /**
56      * <p>The status of the permission set provisioning process.</p>
57      */
SetStatus(const StatusValues & value)58     inline void SetStatus(const StatusValues& value) { m_statusHasBeenSet = true; m_status = value; }
59 
60     /**
61      * <p>The status of the permission set provisioning process.</p>
62      */
SetStatus(StatusValues && value)63     inline void SetStatus(StatusValues&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
64 
65     /**
66      * <p>The status of the permission set provisioning process.</p>
67      */
WithStatus(const StatusValues & value)68     inline AccountAssignmentOperationStatus& WithStatus(const StatusValues& value) { SetStatus(value); return *this;}
69 
70     /**
71      * <p>The status of the permission set provisioning process.</p>
72      */
WithStatus(StatusValues && value)73     inline AccountAssignmentOperationStatus& WithStatus(StatusValues&& value) { SetStatus(std::move(value)); return *this;}
74 
75 
76     /**
77      * <p>The identifier for tracking the request operation that is generated by the
78      * universally unique identifier (UUID) workflow.</p>
79      */
GetRequestId()80     inline const Aws::String& GetRequestId() const{ return m_requestId; }
81 
82     /**
83      * <p>The identifier for tracking the request operation that is generated by the
84      * universally unique identifier (UUID) workflow.</p>
85      */
RequestIdHasBeenSet()86     inline bool RequestIdHasBeenSet() const { return m_requestIdHasBeenSet; }
87 
88     /**
89      * <p>The identifier for tracking the request operation that is generated by the
90      * universally unique identifier (UUID) workflow.</p>
91      */
SetRequestId(const Aws::String & value)92     inline void SetRequestId(const Aws::String& value) { m_requestIdHasBeenSet = true; m_requestId = value; }
93 
94     /**
95      * <p>The identifier for tracking the request operation that is generated by the
96      * universally unique identifier (UUID) workflow.</p>
97      */
SetRequestId(Aws::String && value)98     inline void SetRequestId(Aws::String&& value) { m_requestIdHasBeenSet = true; m_requestId = std::move(value); }
99 
100     /**
101      * <p>The identifier for tracking the request operation that is generated by the
102      * universally unique identifier (UUID) workflow.</p>
103      */
SetRequestId(const char * value)104     inline void SetRequestId(const char* value) { m_requestIdHasBeenSet = true; m_requestId.assign(value); }
105 
106     /**
107      * <p>The identifier for tracking the request operation that is generated by the
108      * universally unique identifier (UUID) workflow.</p>
109      */
WithRequestId(const Aws::String & value)110     inline AccountAssignmentOperationStatus& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;}
111 
112     /**
113      * <p>The identifier for tracking the request operation that is generated by the
114      * universally unique identifier (UUID) workflow.</p>
115      */
WithRequestId(Aws::String && value)116     inline AccountAssignmentOperationStatus& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;}
117 
118     /**
119      * <p>The identifier for tracking the request operation that is generated by the
120      * universally unique identifier (UUID) workflow.</p>
121      */
WithRequestId(const char * value)122     inline AccountAssignmentOperationStatus& WithRequestId(const char* value) { SetRequestId(value); return *this;}
123 
124 
125     /**
126      * <p>The message that contains an error or exception in case of an operation
127      * failure.</p>
128      */
GetFailureReason()129     inline const Aws::String& GetFailureReason() const{ return m_failureReason; }
130 
131     /**
132      * <p>The message that contains an error or exception in case of an operation
133      * failure.</p>
134      */
FailureReasonHasBeenSet()135     inline bool FailureReasonHasBeenSet() const { return m_failureReasonHasBeenSet; }
136 
137     /**
138      * <p>The message that contains an error or exception in case of an operation
139      * failure.</p>
140      */
SetFailureReason(const Aws::String & value)141     inline void SetFailureReason(const Aws::String& value) { m_failureReasonHasBeenSet = true; m_failureReason = value; }
142 
143     /**
144      * <p>The message that contains an error or exception in case of an operation
145      * failure.</p>
146      */
SetFailureReason(Aws::String && value)147     inline void SetFailureReason(Aws::String&& value) { m_failureReasonHasBeenSet = true; m_failureReason = std::move(value); }
148 
149     /**
150      * <p>The message that contains an error or exception in case of an operation
151      * failure.</p>
152      */
SetFailureReason(const char * value)153     inline void SetFailureReason(const char* value) { m_failureReasonHasBeenSet = true; m_failureReason.assign(value); }
154 
155     /**
156      * <p>The message that contains an error or exception in case of an operation
157      * failure.</p>
158      */
WithFailureReason(const Aws::String & value)159     inline AccountAssignmentOperationStatus& WithFailureReason(const Aws::String& value) { SetFailureReason(value); return *this;}
160 
161     /**
162      * <p>The message that contains an error or exception in case of an operation
163      * failure.</p>
164      */
WithFailureReason(Aws::String && value)165     inline AccountAssignmentOperationStatus& WithFailureReason(Aws::String&& value) { SetFailureReason(std::move(value)); return *this;}
166 
167     /**
168      * <p>The message that contains an error or exception in case of an operation
169      * failure.</p>
170      */
WithFailureReason(const char * value)171     inline AccountAssignmentOperationStatus& WithFailureReason(const char* value) { SetFailureReason(value); return *this;}
172 
173 
174     /**
175      * <p>TargetID is an Amazon Web Services account identifier, typically a 10-12
176      * digit string (For example, 123456789012).</p>
177      */
GetTargetId()178     inline const Aws::String& GetTargetId() const{ return m_targetId; }
179 
180     /**
181      * <p>TargetID is an Amazon Web Services account identifier, typically a 10-12
182      * digit string (For example, 123456789012).</p>
183      */
TargetIdHasBeenSet()184     inline bool TargetIdHasBeenSet() const { return m_targetIdHasBeenSet; }
185 
186     /**
187      * <p>TargetID is an Amazon Web Services account identifier, typically a 10-12
188      * digit string (For example, 123456789012).</p>
189      */
SetTargetId(const Aws::String & value)190     inline void SetTargetId(const Aws::String& value) { m_targetIdHasBeenSet = true; m_targetId = value; }
191 
192     /**
193      * <p>TargetID is an Amazon Web Services account identifier, typically a 10-12
194      * digit string (For example, 123456789012).</p>
195      */
SetTargetId(Aws::String && value)196     inline void SetTargetId(Aws::String&& value) { m_targetIdHasBeenSet = true; m_targetId = std::move(value); }
197 
198     /**
199      * <p>TargetID is an Amazon Web Services account identifier, typically a 10-12
200      * digit string (For example, 123456789012).</p>
201      */
SetTargetId(const char * value)202     inline void SetTargetId(const char* value) { m_targetIdHasBeenSet = true; m_targetId.assign(value); }
203 
204     /**
205      * <p>TargetID is an Amazon Web Services account identifier, typically a 10-12
206      * digit string (For example, 123456789012).</p>
207      */
WithTargetId(const Aws::String & value)208     inline AccountAssignmentOperationStatus& WithTargetId(const Aws::String& value) { SetTargetId(value); return *this;}
209 
210     /**
211      * <p>TargetID is an Amazon Web Services account identifier, typically a 10-12
212      * digit string (For example, 123456789012).</p>
213      */
WithTargetId(Aws::String && value)214     inline AccountAssignmentOperationStatus& WithTargetId(Aws::String&& value) { SetTargetId(std::move(value)); return *this;}
215 
216     /**
217      * <p>TargetID is an Amazon Web Services account identifier, typically a 10-12
218      * digit string (For example, 123456789012).</p>
219      */
WithTargetId(const char * value)220     inline AccountAssignmentOperationStatus& WithTargetId(const char* value) { SetTargetId(value); return *this;}
221 
222 
223     /**
224      * <p>The entity type for which the assignment will be created.</p>
225      */
GetTargetType()226     inline const TargetType& GetTargetType() const{ return m_targetType; }
227 
228     /**
229      * <p>The entity type for which the assignment will be created.</p>
230      */
TargetTypeHasBeenSet()231     inline bool TargetTypeHasBeenSet() const { return m_targetTypeHasBeenSet; }
232 
233     /**
234      * <p>The entity type for which the assignment will be created.</p>
235      */
SetTargetType(const TargetType & value)236     inline void SetTargetType(const TargetType& value) { m_targetTypeHasBeenSet = true; m_targetType = value; }
237 
238     /**
239      * <p>The entity type for which the assignment will be created.</p>
240      */
SetTargetType(TargetType && value)241     inline void SetTargetType(TargetType&& value) { m_targetTypeHasBeenSet = true; m_targetType = std::move(value); }
242 
243     /**
244      * <p>The entity type for which the assignment will be created.</p>
245      */
WithTargetType(const TargetType & value)246     inline AccountAssignmentOperationStatus& WithTargetType(const TargetType& value) { SetTargetType(value); return *this;}
247 
248     /**
249      * <p>The entity type for which the assignment will be created.</p>
250      */
WithTargetType(TargetType && value)251     inline AccountAssignmentOperationStatus& WithTargetType(TargetType&& value) { SetTargetType(std::move(value)); return *this;}
252 
253 
254     /**
255      * <p>The ARN of the permission set. For more information about ARNs, see <a
256      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
257      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
258      * Services General Reference</i>.</p>
259      */
GetPermissionSetArn()260     inline const Aws::String& GetPermissionSetArn() const{ return m_permissionSetArn; }
261 
262     /**
263      * <p>The ARN of the permission set. For more information about ARNs, see <a
264      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
265      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
266      * Services General Reference</i>.</p>
267      */
PermissionSetArnHasBeenSet()268     inline bool PermissionSetArnHasBeenSet() const { return m_permissionSetArnHasBeenSet; }
269 
270     /**
271      * <p>The ARN of the permission set. For more information about ARNs, see <a
272      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
273      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
274      * Services General Reference</i>.</p>
275      */
SetPermissionSetArn(const Aws::String & value)276     inline void SetPermissionSetArn(const Aws::String& value) { m_permissionSetArnHasBeenSet = true; m_permissionSetArn = value; }
277 
278     /**
279      * <p>The ARN of the permission set. For more information about ARNs, see <a
280      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
281      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
282      * Services General Reference</i>.</p>
283      */
SetPermissionSetArn(Aws::String && value)284     inline void SetPermissionSetArn(Aws::String&& value) { m_permissionSetArnHasBeenSet = true; m_permissionSetArn = std::move(value); }
285 
286     /**
287      * <p>The ARN of the permission set. For more information about ARNs, see <a
288      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
289      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
290      * Services General Reference</i>.</p>
291      */
SetPermissionSetArn(const char * value)292     inline void SetPermissionSetArn(const char* value) { m_permissionSetArnHasBeenSet = true; m_permissionSetArn.assign(value); }
293 
294     /**
295      * <p>The ARN of the permission set. For more information about ARNs, see <a
296      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
297      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
298      * Services General Reference</i>.</p>
299      */
WithPermissionSetArn(const Aws::String & value)300     inline AccountAssignmentOperationStatus& WithPermissionSetArn(const Aws::String& value) { SetPermissionSetArn(value); return *this;}
301 
302     /**
303      * <p>The ARN of the permission set. For more information about ARNs, see <a
304      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
305      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
306      * Services General Reference</i>.</p>
307      */
WithPermissionSetArn(Aws::String && value)308     inline AccountAssignmentOperationStatus& WithPermissionSetArn(Aws::String&& value) { SetPermissionSetArn(std::move(value)); return *this;}
309 
310     /**
311      * <p>The ARN of the permission set. For more information about ARNs, see <a
312      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
313      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
314      * Services General Reference</i>.</p>
315      */
WithPermissionSetArn(const char * value)316     inline AccountAssignmentOperationStatus& WithPermissionSetArn(const char* value) { SetPermissionSetArn(value); return *this;}
317 
318 
319     /**
320      * <p>The entity type for which the assignment will be created.</p>
321      */
GetPrincipalType()322     inline const PrincipalType& GetPrincipalType() const{ return m_principalType; }
323 
324     /**
325      * <p>The entity type for which the assignment will be created.</p>
326      */
PrincipalTypeHasBeenSet()327     inline bool PrincipalTypeHasBeenSet() const { return m_principalTypeHasBeenSet; }
328 
329     /**
330      * <p>The entity type for which the assignment will be created.</p>
331      */
SetPrincipalType(const PrincipalType & value)332     inline void SetPrincipalType(const PrincipalType& value) { m_principalTypeHasBeenSet = true; m_principalType = value; }
333 
334     /**
335      * <p>The entity type for which the assignment will be created.</p>
336      */
SetPrincipalType(PrincipalType && value)337     inline void SetPrincipalType(PrincipalType&& value) { m_principalTypeHasBeenSet = true; m_principalType = std::move(value); }
338 
339     /**
340      * <p>The entity type for which the assignment will be created.</p>
341      */
WithPrincipalType(const PrincipalType & value)342     inline AccountAssignmentOperationStatus& WithPrincipalType(const PrincipalType& value) { SetPrincipalType(value); return *this;}
343 
344     /**
345      * <p>The entity type for which the assignment will be created.</p>
346      */
WithPrincipalType(PrincipalType && value)347     inline AccountAssignmentOperationStatus& WithPrincipalType(PrincipalType&& value) { SetPrincipalType(std::move(value)); return *this;}
348 
349 
350     /**
351      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
352      * group. PrincipalIds are GUIDs (For example,
353      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
354      * in Amazon Web Services SSO, see the <a
355      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
356      * Services SSO Identity Store API Reference</a>.</p>
357      */
GetPrincipalId()358     inline const Aws::String& GetPrincipalId() const{ return m_principalId; }
359 
360     /**
361      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
362      * group. PrincipalIds are GUIDs (For example,
363      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
364      * in Amazon Web Services SSO, see the <a
365      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
366      * Services SSO Identity Store API Reference</a>.</p>
367      */
PrincipalIdHasBeenSet()368     inline bool PrincipalIdHasBeenSet() const { return m_principalIdHasBeenSet; }
369 
370     /**
371      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
372      * group. PrincipalIds are GUIDs (For example,
373      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
374      * in Amazon Web Services SSO, see the <a
375      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
376      * Services SSO Identity Store API Reference</a>.</p>
377      */
SetPrincipalId(const Aws::String & value)378     inline void SetPrincipalId(const Aws::String& value) { m_principalIdHasBeenSet = true; m_principalId = value; }
379 
380     /**
381      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
382      * group. PrincipalIds are GUIDs (For example,
383      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
384      * in Amazon Web Services SSO, see the <a
385      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
386      * Services SSO Identity Store API Reference</a>.</p>
387      */
SetPrincipalId(Aws::String && value)388     inline void SetPrincipalId(Aws::String&& value) { m_principalIdHasBeenSet = true; m_principalId = std::move(value); }
389 
390     /**
391      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
392      * group. PrincipalIds are GUIDs (For example,
393      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
394      * in Amazon Web Services SSO, see the <a
395      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
396      * Services SSO Identity Store API Reference</a>.</p>
397      */
SetPrincipalId(const char * value)398     inline void SetPrincipalId(const char* value) { m_principalIdHasBeenSet = true; m_principalId.assign(value); }
399 
400     /**
401      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
402      * group. PrincipalIds are GUIDs (For example,
403      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
404      * in Amazon Web Services SSO, see the <a
405      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
406      * Services SSO Identity Store API Reference</a>.</p>
407      */
WithPrincipalId(const Aws::String & value)408     inline AccountAssignmentOperationStatus& WithPrincipalId(const Aws::String& value) { SetPrincipalId(value); return *this;}
409 
410     /**
411      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
412      * group. PrincipalIds are GUIDs (For example,
413      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
414      * in Amazon Web Services SSO, see the <a
415      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
416      * Services SSO Identity Store API Reference</a>.</p>
417      */
WithPrincipalId(Aws::String && value)418     inline AccountAssignmentOperationStatus& WithPrincipalId(Aws::String&& value) { SetPrincipalId(std::move(value)); return *this;}
419 
420     /**
421      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
422      * group. PrincipalIds are GUIDs (For example,
423      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
424      * in Amazon Web Services SSO, see the <a
425      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
426      * Services SSO Identity Store API Reference</a>.</p>
427      */
WithPrincipalId(const char * value)428     inline AccountAssignmentOperationStatus& WithPrincipalId(const char* value) { SetPrincipalId(value); return *this;}
429 
430 
431     /**
432      * <p>The date that the permission set was created.</p>
433      */
GetCreatedDate()434     inline const Aws::Utils::DateTime& GetCreatedDate() const{ return m_createdDate; }
435 
436     /**
437      * <p>The date that the permission set was created.</p>
438      */
CreatedDateHasBeenSet()439     inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; }
440 
441     /**
442      * <p>The date that the permission set was created.</p>
443      */
SetCreatedDate(const Aws::Utils::DateTime & value)444     inline void SetCreatedDate(const Aws::Utils::DateTime& value) { m_createdDateHasBeenSet = true; m_createdDate = value; }
445 
446     /**
447      * <p>The date that the permission set was created.</p>
448      */
SetCreatedDate(Aws::Utils::DateTime && value)449     inline void SetCreatedDate(Aws::Utils::DateTime&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); }
450 
451     /**
452      * <p>The date that the permission set was created.</p>
453      */
WithCreatedDate(const Aws::Utils::DateTime & value)454     inline AccountAssignmentOperationStatus& WithCreatedDate(const Aws::Utils::DateTime& value) { SetCreatedDate(value); return *this;}
455 
456     /**
457      * <p>The date that the permission set was created.</p>
458      */
WithCreatedDate(Aws::Utils::DateTime && value)459     inline AccountAssignmentOperationStatus& WithCreatedDate(Aws::Utils::DateTime&& value) { SetCreatedDate(std::move(value)); return *this;}
460 
461   private:
462 
463     StatusValues m_status;
464     bool m_statusHasBeenSet;
465 
466     Aws::String m_requestId;
467     bool m_requestIdHasBeenSet;
468 
469     Aws::String m_failureReason;
470     bool m_failureReasonHasBeenSet;
471 
472     Aws::String m_targetId;
473     bool m_targetIdHasBeenSet;
474 
475     TargetType m_targetType;
476     bool m_targetTypeHasBeenSet;
477 
478     Aws::String m_permissionSetArn;
479     bool m_permissionSetArnHasBeenSet;
480 
481     PrincipalType m_principalType;
482     bool m_principalTypeHasBeenSet;
483 
484     Aws::String m_principalId;
485     bool m_principalIdHasBeenSet;
486 
487     Aws::Utils::DateTime m_createdDate;
488     bool m_createdDateHasBeenSet;
489   };
490 
491 } // namespace Model
492 } // namespace SSOAdmin
493 } // namespace Aws
494