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/alexaforbusiness/AlexaForBusiness_EXPORTS.h>
8 #include <aws/alexaforbusiness/AlexaForBusinessRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/alexaforbusiness/model/Tag.h>
12 #include <utility>
13 #include <aws/core/utils/UUID.h>
14 
15 namespace Aws
16 {
17 namespace AlexaForBusiness
18 {
19 namespace Model
20 {
21 
22   /**
23    */
24   class AWS_ALEXAFORBUSINESS_API CreateUserRequest : public AlexaForBusinessRequest
25   {
26   public:
27     CreateUserRequest();
28 
29     // Service request name is the Operation name which will send this request out,
30     // each operation should has unique request name, so that we can get operation's name from this request.
31     // Note: this is not true for response, multiple operations may have the same response name,
32     // so we can not get operation's name from response.
GetServiceRequestName()33     inline virtual const char* GetServiceRequestName() const override { return "CreateUser"; }
34 
35     Aws::String SerializePayload() const override;
36 
37     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
38 
39 
40     /**
41      * <p>The ARN for the user.</p>
42      */
GetUserId()43     inline const Aws::String& GetUserId() const{ return m_userId; }
44 
45     /**
46      * <p>The ARN for the user.</p>
47      */
UserIdHasBeenSet()48     inline bool UserIdHasBeenSet() const { return m_userIdHasBeenSet; }
49 
50     /**
51      * <p>The ARN for the user.</p>
52      */
SetUserId(const Aws::String & value)53     inline void SetUserId(const Aws::String& value) { m_userIdHasBeenSet = true; m_userId = value; }
54 
55     /**
56      * <p>The ARN for the user.</p>
57      */
SetUserId(Aws::String && value)58     inline void SetUserId(Aws::String&& value) { m_userIdHasBeenSet = true; m_userId = std::move(value); }
59 
60     /**
61      * <p>The ARN for the user.</p>
62      */
SetUserId(const char * value)63     inline void SetUserId(const char* value) { m_userIdHasBeenSet = true; m_userId.assign(value); }
64 
65     /**
66      * <p>The ARN for the user.</p>
67      */
WithUserId(const Aws::String & value)68     inline CreateUserRequest& WithUserId(const Aws::String& value) { SetUserId(value); return *this;}
69 
70     /**
71      * <p>The ARN for the user.</p>
72      */
WithUserId(Aws::String && value)73     inline CreateUserRequest& WithUserId(Aws::String&& value) { SetUserId(std::move(value)); return *this;}
74 
75     /**
76      * <p>The ARN for the user.</p>
77      */
WithUserId(const char * value)78     inline CreateUserRequest& WithUserId(const char* value) { SetUserId(value); return *this;}
79 
80 
81     /**
82      * <p>The first name for the user.</p>
83      */
GetFirstName()84     inline const Aws::String& GetFirstName() const{ return m_firstName; }
85 
86     /**
87      * <p>The first name for the user.</p>
88      */
FirstNameHasBeenSet()89     inline bool FirstNameHasBeenSet() const { return m_firstNameHasBeenSet; }
90 
91     /**
92      * <p>The first name for the user.</p>
93      */
SetFirstName(const Aws::String & value)94     inline void SetFirstName(const Aws::String& value) { m_firstNameHasBeenSet = true; m_firstName = value; }
95 
96     /**
97      * <p>The first name for the user.</p>
98      */
SetFirstName(Aws::String && value)99     inline void SetFirstName(Aws::String&& value) { m_firstNameHasBeenSet = true; m_firstName = std::move(value); }
100 
101     /**
102      * <p>The first name for the user.</p>
103      */
SetFirstName(const char * value)104     inline void SetFirstName(const char* value) { m_firstNameHasBeenSet = true; m_firstName.assign(value); }
105 
106     /**
107      * <p>The first name for the user.</p>
108      */
WithFirstName(const Aws::String & value)109     inline CreateUserRequest& WithFirstName(const Aws::String& value) { SetFirstName(value); return *this;}
110 
111     /**
112      * <p>The first name for the user.</p>
113      */
WithFirstName(Aws::String && value)114     inline CreateUserRequest& WithFirstName(Aws::String&& value) { SetFirstName(std::move(value)); return *this;}
115 
116     /**
117      * <p>The first name for the user.</p>
118      */
WithFirstName(const char * value)119     inline CreateUserRequest& WithFirstName(const char* value) { SetFirstName(value); return *this;}
120 
121 
122     /**
123      * <p>The last name for the user.</p>
124      */
GetLastName()125     inline const Aws::String& GetLastName() const{ return m_lastName; }
126 
127     /**
128      * <p>The last name for the user.</p>
129      */
LastNameHasBeenSet()130     inline bool LastNameHasBeenSet() const { return m_lastNameHasBeenSet; }
131 
132     /**
133      * <p>The last name for the user.</p>
134      */
SetLastName(const Aws::String & value)135     inline void SetLastName(const Aws::String& value) { m_lastNameHasBeenSet = true; m_lastName = value; }
136 
137     /**
138      * <p>The last name for the user.</p>
139      */
SetLastName(Aws::String && value)140     inline void SetLastName(Aws::String&& value) { m_lastNameHasBeenSet = true; m_lastName = std::move(value); }
141 
142     /**
143      * <p>The last name for the user.</p>
144      */
SetLastName(const char * value)145     inline void SetLastName(const char* value) { m_lastNameHasBeenSet = true; m_lastName.assign(value); }
146 
147     /**
148      * <p>The last name for the user.</p>
149      */
WithLastName(const Aws::String & value)150     inline CreateUserRequest& WithLastName(const Aws::String& value) { SetLastName(value); return *this;}
151 
152     /**
153      * <p>The last name for the user.</p>
154      */
WithLastName(Aws::String && value)155     inline CreateUserRequest& WithLastName(Aws::String&& value) { SetLastName(std::move(value)); return *this;}
156 
157     /**
158      * <p>The last name for the user.</p>
159      */
WithLastName(const char * value)160     inline CreateUserRequest& WithLastName(const char* value) { SetLastName(value); return *this;}
161 
162 
163     /**
164      * <p>The email address for the user.</p>
165      */
GetEmail()166     inline const Aws::String& GetEmail() const{ return m_email; }
167 
168     /**
169      * <p>The email address for the user.</p>
170      */
EmailHasBeenSet()171     inline bool EmailHasBeenSet() const { return m_emailHasBeenSet; }
172 
173     /**
174      * <p>The email address for the user.</p>
175      */
SetEmail(const Aws::String & value)176     inline void SetEmail(const Aws::String& value) { m_emailHasBeenSet = true; m_email = value; }
177 
178     /**
179      * <p>The email address for the user.</p>
180      */
SetEmail(Aws::String && value)181     inline void SetEmail(Aws::String&& value) { m_emailHasBeenSet = true; m_email = std::move(value); }
182 
183     /**
184      * <p>The email address for the user.</p>
185      */
SetEmail(const char * value)186     inline void SetEmail(const char* value) { m_emailHasBeenSet = true; m_email.assign(value); }
187 
188     /**
189      * <p>The email address for the user.</p>
190      */
WithEmail(const Aws::String & value)191     inline CreateUserRequest& WithEmail(const Aws::String& value) { SetEmail(value); return *this;}
192 
193     /**
194      * <p>The email address for the user.</p>
195      */
WithEmail(Aws::String && value)196     inline CreateUserRequest& WithEmail(Aws::String&& value) { SetEmail(std::move(value)); return *this;}
197 
198     /**
199      * <p>The email address for the user.</p>
200      */
WithEmail(const char * value)201     inline CreateUserRequest& WithEmail(const char* value) { SetEmail(value); return *this;}
202 
203 
204     /**
205      * <p>A unique, user-specified identifier for this request that ensures
206      * idempotency. </p>
207      */
GetClientRequestToken()208     inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; }
209 
210     /**
211      * <p>A unique, user-specified identifier for this request that ensures
212      * idempotency. </p>
213      */
ClientRequestTokenHasBeenSet()214     inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; }
215 
216     /**
217      * <p>A unique, user-specified identifier for this request that ensures
218      * idempotency. </p>
219      */
SetClientRequestToken(const Aws::String & value)220     inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; }
221 
222     /**
223      * <p>A unique, user-specified identifier for this request that ensures
224      * idempotency. </p>
225      */
SetClientRequestToken(Aws::String && value)226     inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); }
227 
228     /**
229      * <p>A unique, user-specified identifier for this request that ensures
230      * idempotency. </p>
231      */
SetClientRequestToken(const char * value)232     inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); }
233 
234     /**
235      * <p>A unique, user-specified identifier for this request that ensures
236      * idempotency. </p>
237      */
WithClientRequestToken(const Aws::String & value)238     inline CreateUserRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;}
239 
240     /**
241      * <p>A unique, user-specified identifier for this request that ensures
242      * idempotency. </p>
243      */
WithClientRequestToken(Aws::String && value)244     inline CreateUserRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;}
245 
246     /**
247      * <p>A unique, user-specified identifier for this request that ensures
248      * idempotency. </p>
249      */
WithClientRequestToken(const char * value)250     inline CreateUserRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;}
251 
252 
253     /**
254      * <p>The tags for the user.</p>
255      */
GetTags()256     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
257 
258     /**
259      * <p>The tags for the user.</p>
260      */
TagsHasBeenSet()261     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
262 
263     /**
264      * <p>The tags for the user.</p>
265      */
SetTags(const Aws::Vector<Tag> & value)266     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
267 
268     /**
269      * <p>The tags for the user.</p>
270      */
SetTags(Aws::Vector<Tag> && value)271     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
272 
273     /**
274      * <p>The tags for the user.</p>
275      */
WithTags(const Aws::Vector<Tag> & value)276     inline CreateUserRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
277 
278     /**
279      * <p>The tags for the user.</p>
280      */
WithTags(Aws::Vector<Tag> && value)281     inline CreateUserRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
282 
283     /**
284      * <p>The tags for the user.</p>
285      */
AddTags(const Tag & value)286     inline CreateUserRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
287 
288     /**
289      * <p>The tags for the user.</p>
290      */
AddTags(Tag && value)291     inline CreateUserRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
292 
293   private:
294 
295     Aws::String m_userId;
296     bool m_userIdHasBeenSet;
297 
298     Aws::String m_firstName;
299     bool m_firstNameHasBeenSet;
300 
301     Aws::String m_lastName;
302     bool m_lastNameHasBeenSet;
303 
304     Aws::String m_email;
305     bool m_emailHasBeenSet;
306 
307     Aws::String m_clientRequestToken;
308     bool m_clientRequestTokenHasBeenSet;
309 
310     Aws::Vector<Tag> m_tags;
311     bool m_tagsHasBeenSet;
312   };
313 
314 } // namespace Model
315 } // namespace AlexaForBusiness
316 } // namespace Aws
317