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/core/utils/memory/stl/AWSString.h>
9 #include <aws/sso-admin/model/PrincipalType.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace SSOAdmin
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>The assignment that indicates a principal's limited access to a specified
29    * Amazon Web Services account with a specified permission set.</p>  <p>The
30    * term <i>principal</i> here refers to a user or group that is defined in Amazon
31    * Web Services SSO.</p> <p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/sso-admin-2020-07-20/AccountAssignment">AWS
33    * API Reference</a></p>
34    */
35   class AWS_SSOADMIN_API AccountAssignment
36   {
37   public:
38     AccountAssignment();
39     AccountAssignment(Aws::Utils::Json::JsonView jsonValue);
40     AccountAssignment& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p>The identifier of the Amazon Web Services account.</p>
46      */
GetAccountId()47     inline const Aws::String& GetAccountId() const{ return m_accountId; }
48 
49     /**
50      * <p>The identifier of the Amazon Web Services account.</p>
51      */
AccountIdHasBeenSet()52     inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; }
53 
54     /**
55      * <p>The identifier of the Amazon Web Services account.</p>
56      */
SetAccountId(const Aws::String & value)57     inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; }
58 
59     /**
60      * <p>The identifier of the Amazon Web Services account.</p>
61      */
SetAccountId(Aws::String && value)62     inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); }
63 
64     /**
65      * <p>The identifier of the Amazon Web Services account.</p>
66      */
SetAccountId(const char * value)67     inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); }
68 
69     /**
70      * <p>The identifier of the Amazon Web Services account.</p>
71      */
WithAccountId(const Aws::String & value)72     inline AccountAssignment& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;}
73 
74     /**
75      * <p>The identifier of the Amazon Web Services account.</p>
76      */
WithAccountId(Aws::String && value)77     inline AccountAssignment& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;}
78 
79     /**
80      * <p>The identifier of the Amazon Web Services account.</p>
81      */
WithAccountId(const char * value)82     inline AccountAssignment& WithAccountId(const char* value) { SetAccountId(value); return *this;}
83 
84 
85     /**
86      * <p>The ARN of the permission set. For more information about ARNs, see <a
87      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
88      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
89      * Services General Reference</i>.</p>
90      */
GetPermissionSetArn()91     inline const Aws::String& GetPermissionSetArn() const{ return m_permissionSetArn; }
92 
93     /**
94      * <p>The ARN of the permission set. For more information about ARNs, see <a
95      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
96      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
97      * Services General Reference</i>.</p>
98      */
PermissionSetArnHasBeenSet()99     inline bool PermissionSetArnHasBeenSet() const { return m_permissionSetArnHasBeenSet; }
100 
101     /**
102      * <p>The ARN of the permission set. For more information about ARNs, see <a
103      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
104      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
105      * Services General Reference</i>.</p>
106      */
SetPermissionSetArn(const Aws::String & value)107     inline void SetPermissionSetArn(const Aws::String& value) { m_permissionSetArnHasBeenSet = true; m_permissionSetArn = value; }
108 
109     /**
110      * <p>The ARN of the permission set. For more information about ARNs, see <a
111      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
112      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
113      * Services General Reference</i>.</p>
114      */
SetPermissionSetArn(Aws::String && value)115     inline void SetPermissionSetArn(Aws::String&& value) { m_permissionSetArnHasBeenSet = true; m_permissionSetArn = std::move(value); }
116 
117     /**
118      * <p>The ARN of the permission set. For more information about ARNs, see <a
119      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
120      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
121      * Services General Reference</i>.</p>
122      */
SetPermissionSetArn(const char * value)123     inline void SetPermissionSetArn(const char* value) { m_permissionSetArnHasBeenSet = true; m_permissionSetArn.assign(value); }
124 
125     /**
126      * <p>The ARN of the permission set. For more information about ARNs, see <a
127      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
128      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
129      * Services General Reference</i>.</p>
130      */
WithPermissionSetArn(const Aws::String & value)131     inline AccountAssignment& WithPermissionSetArn(const Aws::String& value) { SetPermissionSetArn(value); return *this;}
132 
133     /**
134      * <p>The ARN of the permission set. For more information about ARNs, see <a
135      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
136      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
137      * Services General Reference</i>.</p>
138      */
WithPermissionSetArn(Aws::String && value)139     inline AccountAssignment& WithPermissionSetArn(Aws::String&& value) { SetPermissionSetArn(std::move(value)); return *this;}
140 
141     /**
142      * <p>The ARN of the permission set. For more information about ARNs, see <a
143      * href="/general/latest/gr/aws-arns-and-namespaces.html">Amazon Resource Names
144      * (ARNs) and Amazon Web Services Service Namespaces</a> in the <i>Amazon Web
145      * Services General Reference</i>.</p>
146      */
WithPermissionSetArn(const char * value)147     inline AccountAssignment& WithPermissionSetArn(const char* value) { SetPermissionSetArn(value); return *this;}
148 
149 
150     /**
151      * <p>The entity type for which the assignment will be created.</p>
152      */
GetPrincipalType()153     inline const PrincipalType& GetPrincipalType() const{ return m_principalType; }
154 
155     /**
156      * <p>The entity type for which the assignment will be created.</p>
157      */
PrincipalTypeHasBeenSet()158     inline bool PrincipalTypeHasBeenSet() const { return m_principalTypeHasBeenSet; }
159 
160     /**
161      * <p>The entity type for which the assignment will be created.</p>
162      */
SetPrincipalType(const PrincipalType & value)163     inline void SetPrincipalType(const PrincipalType& value) { m_principalTypeHasBeenSet = true; m_principalType = value; }
164 
165     /**
166      * <p>The entity type for which the assignment will be created.</p>
167      */
SetPrincipalType(PrincipalType && value)168     inline void SetPrincipalType(PrincipalType&& value) { m_principalTypeHasBeenSet = true; m_principalType = std::move(value); }
169 
170     /**
171      * <p>The entity type for which the assignment will be created.</p>
172      */
WithPrincipalType(const PrincipalType & value)173     inline AccountAssignment& WithPrincipalType(const PrincipalType& value) { SetPrincipalType(value); return *this;}
174 
175     /**
176      * <p>The entity type for which the assignment will be created.</p>
177      */
WithPrincipalType(PrincipalType && value)178     inline AccountAssignment& WithPrincipalType(PrincipalType&& value) { SetPrincipalType(std::move(value)); return *this;}
179 
180 
181     /**
182      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
183      * group. PrincipalIds are GUIDs (For example,
184      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
185      * in Amazon Web Services SSO, see the <a
186      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
187      * Services SSO Identity Store API Reference</a>.</p>
188      */
GetPrincipalId()189     inline const Aws::String& GetPrincipalId() const{ return m_principalId; }
190 
191     /**
192      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
193      * group. PrincipalIds are GUIDs (For example,
194      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
195      * in Amazon Web Services SSO, see the <a
196      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
197      * Services SSO Identity Store API Reference</a>.</p>
198      */
PrincipalIdHasBeenSet()199     inline bool PrincipalIdHasBeenSet() const { return m_principalIdHasBeenSet; }
200 
201     /**
202      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
203      * group. PrincipalIds are GUIDs (For example,
204      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
205      * in Amazon Web Services SSO, see the <a
206      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
207      * Services SSO Identity Store API Reference</a>.</p>
208      */
SetPrincipalId(const Aws::String & value)209     inline void SetPrincipalId(const Aws::String& value) { m_principalIdHasBeenSet = true; m_principalId = value; }
210 
211     /**
212      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
213      * group. PrincipalIds are GUIDs (For example,
214      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
215      * in Amazon Web Services SSO, see the <a
216      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
217      * Services SSO Identity Store API Reference</a>.</p>
218      */
SetPrincipalId(Aws::String && value)219     inline void SetPrincipalId(Aws::String&& value) { m_principalIdHasBeenSet = true; m_principalId = std::move(value); }
220 
221     /**
222      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
223      * group. PrincipalIds are GUIDs (For example,
224      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
225      * in Amazon Web Services SSO, see the <a
226      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
227      * Services SSO Identity Store API Reference</a>.</p>
228      */
SetPrincipalId(const char * value)229     inline void SetPrincipalId(const char* value) { m_principalIdHasBeenSet = true; m_principalId.assign(value); }
230 
231     /**
232      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
233      * group. PrincipalIds are GUIDs (For example,
234      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
235      * in Amazon Web Services SSO, see the <a
236      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
237      * Services SSO Identity Store API Reference</a>.</p>
238      */
WithPrincipalId(const Aws::String & value)239     inline AccountAssignment& WithPrincipalId(const Aws::String& value) { SetPrincipalId(value); return *this;}
240 
241     /**
242      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
243      * group. PrincipalIds are GUIDs (For example,
244      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
245      * in Amazon Web Services SSO, see the <a
246      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
247      * Services SSO Identity Store API Reference</a>.</p>
248      */
WithPrincipalId(Aws::String && value)249     inline AccountAssignment& WithPrincipalId(Aws::String&& value) { SetPrincipalId(std::move(value)); return *this;}
250 
251     /**
252      * <p>An identifier for an object in Amazon Web Services SSO, such as a user or
253      * group. PrincipalIds are GUIDs (For example,
254      * f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds
255      * in Amazon Web Services SSO, see the <a
256      * href="/singlesignon/latest/IdentityStoreAPIReference/welcome.html">Amazon Web
257      * Services SSO Identity Store API Reference</a>.</p>
258      */
WithPrincipalId(const char * value)259     inline AccountAssignment& WithPrincipalId(const char* value) { SetPrincipalId(value); return *this;}
260 
261   private:
262 
263     Aws::String m_accountId;
264     bool m_accountIdHasBeenSet;
265 
266     Aws::String m_permissionSetArn;
267     bool m_permissionSetArnHasBeenSet;
268 
269     PrincipalType m_principalType;
270     bool m_principalTypeHasBeenSet;
271 
272     Aws::String m_principalId;
273     bool m_principalIdHasBeenSet;
274   };
275 
276 } // namespace Model
277 } // namespace SSOAdmin
278 } // namespace Aws
279