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/quicksight/QuickSight_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/quicksight/model/AssignmentStatus.h>
10 #include <aws/core/utils/memory/stl/AWSMap.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 template<typename RESULT_TYPE>
17 class AmazonWebServiceResult;
18 
19 namespace Utils
20 {
21 namespace Json
22 {
23   class JsonValue;
24 } // namespace Json
25 } // namespace Utils
26 namespace QuickSight
27 {
28 namespace Model
29 {
30   class AWS_QUICKSIGHT_API CreateIAMPolicyAssignmentResult
31   {
32   public:
33     CreateIAMPolicyAssignmentResult();
34     CreateIAMPolicyAssignmentResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
35     CreateIAMPolicyAssignmentResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
36 
37 
38     /**
39      * <p>The name of the assignment. This name must be unique within the Amazon Web
40      * Services account.</p>
41      */
GetAssignmentName()42     inline const Aws::String& GetAssignmentName() const{ return m_assignmentName; }
43 
44     /**
45      * <p>The name of the assignment. This name must be unique within the Amazon Web
46      * Services account.</p>
47      */
SetAssignmentName(const Aws::String & value)48     inline void SetAssignmentName(const Aws::String& value) { m_assignmentName = value; }
49 
50     /**
51      * <p>The name of the assignment. This name must be unique within the Amazon Web
52      * Services account.</p>
53      */
SetAssignmentName(Aws::String && value)54     inline void SetAssignmentName(Aws::String&& value) { m_assignmentName = std::move(value); }
55 
56     /**
57      * <p>The name of the assignment. This name must be unique within the Amazon Web
58      * Services account.</p>
59      */
SetAssignmentName(const char * value)60     inline void SetAssignmentName(const char* value) { m_assignmentName.assign(value); }
61 
62     /**
63      * <p>The name of the assignment. This name must be unique within the Amazon Web
64      * Services account.</p>
65      */
WithAssignmentName(const Aws::String & value)66     inline CreateIAMPolicyAssignmentResult& WithAssignmentName(const Aws::String& value) { SetAssignmentName(value); return *this;}
67 
68     /**
69      * <p>The name of the assignment. This name must be unique within the Amazon Web
70      * Services account.</p>
71      */
WithAssignmentName(Aws::String && value)72     inline CreateIAMPolicyAssignmentResult& WithAssignmentName(Aws::String&& value) { SetAssignmentName(std::move(value)); return *this;}
73 
74     /**
75      * <p>The name of the assignment. This name must be unique within the Amazon Web
76      * Services account.</p>
77      */
WithAssignmentName(const char * value)78     inline CreateIAMPolicyAssignmentResult& WithAssignmentName(const char* value) { SetAssignmentName(value); return *this;}
79 
80 
81     /**
82      * <p>The ID for the assignment.</p>
83      */
GetAssignmentId()84     inline const Aws::String& GetAssignmentId() const{ return m_assignmentId; }
85 
86     /**
87      * <p>The ID for the assignment.</p>
88      */
SetAssignmentId(const Aws::String & value)89     inline void SetAssignmentId(const Aws::String& value) { m_assignmentId = value; }
90 
91     /**
92      * <p>The ID for the assignment.</p>
93      */
SetAssignmentId(Aws::String && value)94     inline void SetAssignmentId(Aws::String&& value) { m_assignmentId = std::move(value); }
95 
96     /**
97      * <p>The ID for the assignment.</p>
98      */
SetAssignmentId(const char * value)99     inline void SetAssignmentId(const char* value) { m_assignmentId.assign(value); }
100 
101     /**
102      * <p>The ID for the assignment.</p>
103      */
WithAssignmentId(const Aws::String & value)104     inline CreateIAMPolicyAssignmentResult& WithAssignmentId(const Aws::String& value) { SetAssignmentId(value); return *this;}
105 
106     /**
107      * <p>The ID for the assignment.</p>
108      */
WithAssignmentId(Aws::String && value)109     inline CreateIAMPolicyAssignmentResult& WithAssignmentId(Aws::String&& value) { SetAssignmentId(std::move(value)); return *this;}
110 
111     /**
112      * <p>The ID for the assignment.</p>
113      */
WithAssignmentId(const char * value)114     inline CreateIAMPolicyAssignmentResult& WithAssignmentId(const char* value) { SetAssignmentId(value); return *this;}
115 
116 
117     /**
118      * <p>The status of the assignment. Possible values are as follows:</p> <ul> <li>
119      * <p> <code>ENABLED</code> - Anything specified in this assignment is used when
120      * creating the data source.</p> </li> <li> <p> <code>DISABLED</code> - This
121      * assignment isn't used when creating the data source.</p> </li> <li> <p>
122      * <code>DRAFT</code> - This assignment is an unfinished draft and isn't used when
123      * creating the data source.</p> </li> </ul>
124      */
GetAssignmentStatus()125     inline const AssignmentStatus& GetAssignmentStatus() const{ return m_assignmentStatus; }
126 
127     /**
128      * <p>The status of the assignment. Possible values are as follows:</p> <ul> <li>
129      * <p> <code>ENABLED</code> - Anything specified in this assignment is used when
130      * creating the data source.</p> </li> <li> <p> <code>DISABLED</code> - This
131      * assignment isn't used when creating the data source.</p> </li> <li> <p>
132      * <code>DRAFT</code> - This assignment is an unfinished draft and isn't used when
133      * creating the data source.</p> </li> </ul>
134      */
SetAssignmentStatus(const AssignmentStatus & value)135     inline void SetAssignmentStatus(const AssignmentStatus& value) { m_assignmentStatus = value; }
136 
137     /**
138      * <p>The status of the assignment. Possible values are as follows:</p> <ul> <li>
139      * <p> <code>ENABLED</code> - Anything specified in this assignment is used when
140      * creating the data source.</p> </li> <li> <p> <code>DISABLED</code> - This
141      * assignment isn't used when creating the data source.</p> </li> <li> <p>
142      * <code>DRAFT</code> - This assignment is an unfinished draft and isn't used when
143      * creating the data source.</p> </li> </ul>
144      */
SetAssignmentStatus(AssignmentStatus && value)145     inline void SetAssignmentStatus(AssignmentStatus&& value) { m_assignmentStatus = std::move(value); }
146 
147     /**
148      * <p>The status of the assignment. Possible values are as follows:</p> <ul> <li>
149      * <p> <code>ENABLED</code> - Anything specified in this assignment is used when
150      * creating the data source.</p> </li> <li> <p> <code>DISABLED</code> - This
151      * assignment isn't used when creating the data source.</p> </li> <li> <p>
152      * <code>DRAFT</code> - This assignment is an unfinished draft and isn't used when
153      * creating the data source.</p> </li> </ul>
154      */
WithAssignmentStatus(const AssignmentStatus & value)155     inline CreateIAMPolicyAssignmentResult& WithAssignmentStatus(const AssignmentStatus& value) { SetAssignmentStatus(value); return *this;}
156 
157     /**
158      * <p>The status of the assignment. Possible values are as follows:</p> <ul> <li>
159      * <p> <code>ENABLED</code> - Anything specified in this assignment is used when
160      * creating the data source.</p> </li> <li> <p> <code>DISABLED</code> - This
161      * assignment isn't used when creating the data source.</p> </li> <li> <p>
162      * <code>DRAFT</code> - This assignment is an unfinished draft and isn't used when
163      * creating the data source.</p> </li> </ul>
164      */
WithAssignmentStatus(AssignmentStatus && value)165     inline CreateIAMPolicyAssignmentResult& WithAssignmentStatus(AssignmentStatus&& value) { SetAssignmentStatus(std::move(value)); return *this;}
166 
167 
168     /**
169      * <p>The ARN for the IAMpolicy that is applied to the Amazon QuickSight users and
170      * groups specified in this assignment.</p>
171      */
GetPolicyArn()172     inline const Aws::String& GetPolicyArn() const{ return m_policyArn; }
173 
174     /**
175      * <p>The ARN for the IAMpolicy that is applied to the Amazon QuickSight users and
176      * groups specified in this assignment.</p>
177      */
SetPolicyArn(const Aws::String & value)178     inline void SetPolicyArn(const Aws::String& value) { m_policyArn = value; }
179 
180     /**
181      * <p>The ARN for the IAMpolicy that is applied to the Amazon QuickSight users and
182      * groups specified in this assignment.</p>
183      */
SetPolicyArn(Aws::String && value)184     inline void SetPolicyArn(Aws::String&& value) { m_policyArn = std::move(value); }
185 
186     /**
187      * <p>The ARN for the IAMpolicy that is applied to the Amazon QuickSight users and
188      * groups specified in this assignment.</p>
189      */
SetPolicyArn(const char * value)190     inline void SetPolicyArn(const char* value) { m_policyArn.assign(value); }
191 
192     /**
193      * <p>The ARN for the IAMpolicy that is applied to the Amazon QuickSight users and
194      * groups specified in this assignment.</p>
195      */
WithPolicyArn(const Aws::String & value)196     inline CreateIAMPolicyAssignmentResult& WithPolicyArn(const Aws::String& value) { SetPolicyArn(value); return *this;}
197 
198     /**
199      * <p>The ARN for the IAMpolicy that is applied to the Amazon QuickSight users and
200      * groups specified in this assignment.</p>
201      */
WithPolicyArn(Aws::String && value)202     inline CreateIAMPolicyAssignmentResult& WithPolicyArn(Aws::String&& value) { SetPolicyArn(std::move(value)); return *this;}
203 
204     /**
205      * <p>The ARN for the IAMpolicy that is applied to the Amazon QuickSight users and
206      * groups specified in this assignment.</p>
207      */
WithPolicyArn(const char * value)208     inline CreateIAMPolicyAssignmentResult& WithPolicyArn(const char* value) { SetPolicyArn(value); return *this;}
209 
210 
211     /**
212      * <p>The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned
213      * to.</p>
214      */
GetIdentities()215     inline const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& GetIdentities() const{ return m_identities; }
216 
217     /**
218      * <p>The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned
219      * to.</p>
220      */
SetIdentities(const Aws::Map<Aws::String,Aws::Vector<Aws::String>> & value)221     inline void SetIdentities(const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& value) { m_identities = value; }
222 
223     /**
224      * <p>The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned
225      * to.</p>
226      */
SetIdentities(Aws::Map<Aws::String,Aws::Vector<Aws::String>> && value)227     inline void SetIdentities(Aws::Map<Aws::String, Aws::Vector<Aws::String>>&& value) { m_identities = std::move(value); }
228 
229     /**
230      * <p>The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned
231      * to.</p>
232      */
WithIdentities(const Aws::Map<Aws::String,Aws::Vector<Aws::String>> & value)233     inline CreateIAMPolicyAssignmentResult& WithIdentities(const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& value) { SetIdentities(value); return *this;}
234 
235     /**
236      * <p>The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned
237      * to.</p>
238      */
WithIdentities(Aws::Map<Aws::String,Aws::Vector<Aws::String>> && value)239     inline CreateIAMPolicyAssignmentResult& WithIdentities(Aws::Map<Aws::String, Aws::Vector<Aws::String>>&& value) { SetIdentities(std::move(value)); return *this;}
240 
241     /**
242      * <p>The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned
243      * to.</p>
244      */
AddIdentities(const Aws::String & key,const Aws::Vector<Aws::String> & value)245     inline CreateIAMPolicyAssignmentResult& AddIdentities(const Aws::String& key, const Aws::Vector<Aws::String>& value) { m_identities.emplace(key, value); return *this; }
246 
247     /**
248      * <p>The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned
249      * to.</p>
250      */
AddIdentities(Aws::String && key,const Aws::Vector<Aws::String> & value)251     inline CreateIAMPolicyAssignmentResult& AddIdentities(Aws::String&& key, const Aws::Vector<Aws::String>& value) { m_identities.emplace(std::move(key), value); return *this; }
252 
253     /**
254      * <p>The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned
255      * to.</p>
256      */
AddIdentities(const Aws::String & key,Aws::Vector<Aws::String> && value)257     inline CreateIAMPolicyAssignmentResult& AddIdentities(const Aws::String& key, Aws::Vector<Aws::String>&& value) { m_identities.emplace(key, std::move(value)); return *this; }
258 
259     /**
260      * <p>The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned
261      * to.</p>
262      */
AddIdentities(Aws::String && key,Aws::Vector<Aws::String> && value)263     inline CreateIAMPolicyAssignmentResult& AddIdentities(Aws::String&& key, Aws::Vector<Aws::String>&& value) { m_identities.emplace(std::move(key), std::move(value)); return *this; }
264 
265     /**
266      * <p>The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned
267      * to.</p>
268      */
AddIdentities(const char * key,Aws::Vector<Aws::String> && value)269     inline CreateIAMPolicyAssignmentResult& AddIdentities(const char* key, Aws::Vector<Aws::String>&& value) { m_identities.emplace(key, std::move(value)); return *this; }
270 
271     /**
272      * <p>The Amazon QuickSight users, groups, or both that the IAMpolicy is assigned
273      * to.</p>
274      */
AddIdentities(const char * key,const Aws::Vector<Aws::String> & value)275     inline CreateIAMPolicyAssignmentResult& AddIdentities(const char* key, const Aws::Vector<Aws::String>& value) { m_identities.emplace(key, value); return *this; }
276 
277 
278     /**
279      * <p>The Amazon Web Services request ID for this operation.</p>
280      */
GetRequestId()281     inline const Aws::String& GetRequestId() const{ return m_requestId; }
282 
283     /**
284      * <p>The Amazon Web Services request ID for this operation.</p>
285      */
SetRequestId(const Aws::String & value)286     inline void SetRequestId(const Aws::String& value) { m_requestId = value; }
287 
288     /**
289      * <p>The Amazon Web Services request ID for this operation.</p>
290      */
SetRequestId(Aws::String && value)291     inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); }
292 
293     /**
294      * <p>The Amazon Web Services request ID for this operation.</p>
295      */
SetRequestId(const char * value)296     inline void SetRequestId(const char* value) { m_requestId.assign(value); }
297 
298     /**
299      * <p>The Amazon Web Services request ID for this operation.</p>
300      */
WithRequestId(const Aws::String & value)301     inline CreateIAMPolicyAssignmentResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;}
302 
303     /**
304      * <p>The Amazon Web Services request ID for this operation.</p>
305      */
WithRequestId(Aws::String && value)306     inline CreateIAMPolicyAssignmentResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;}
307 
308     /**
309      * <p>The Amazon Web Services request ID for this operation.</p>
310      */
WithRequestId(const char * value)311     inline CreateIAMPolicyAssignmentResult& WithRequestId(const char* value) { SetRequestId(value); return *this;}
312 
313 
314     /**
315      * <p>The HTTP status of the request.</p>
316      */
GetStatus()317     inline int GetStatus() const{ return m_status; }
318 
319     /**
320      * <p>The HTTP status of the request.</p>
321      */
SetStatus(int value)322     inline void SetStatus(int value) { m_status = value; }
323 
324     /**
325      * <p>The HTTP status of the request.</p>
326      */
WithStatus(int value)327     inline CreateIAMPolicyAssignmentResult& WithStatus(int value) { SetStatus(value); return *this;}
328 
329   private:
330 
331     Aws::String m_assignmentName;
332 
333     Aws::String m_assignmentId;
334 
335     AssignmentStatus m_assignmentStatus;
336 
337     Aws::String m_policyArn;
338 
339     Aws::Map<Aws::String, Aws::Vector<Aws::String>> m_identities;
340 
341     Aws::String m_requestId;
342 
343     int m_status;
344   };
345 
346 } // namespace Model
347 } // namespace QuickSight
348 } // namespace Aws
349