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/cognito-idp/CognitoIdentityProvider_EXPORTS.h>
8 #include <aws/cognito-idp/CognitoIdentityProviderRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/cognito-idp/model/AuthFlowType.h>
11 #include <aws/core/utils/memory/stl/AWSMap.h>
12 #include <aws/cognito-idp/model/AnalyticsMetadataType.h>
13 #include <aws/cognito-idp/model/ContextDataType.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace CognitoIdentityProvider
19 {
20 namespace Model
21 {
22 
23   /**
24    * <p>Initiates the authorization request, as an administrator.</p><p><h3>See
25    * Also:</h3>   <a
26    * href="http://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminInitiateAuthRequest">AWS
27    * API Reference</a></p>
28    */
29   class AWS_COGNITOIDENTITYPROVIDER_API AdminInitiateAuthRequest : public CognitoIdentityProviderRequest
30   {
31   public:
32     AdminInitiateAuthRequest();
33 
34     // Service request name is the Operation name which will send this request out,
35     // each operation should has unique request name, so that we can get operation's name from this request.
36     // Note: this is not true for response, multiple operations may have the same response name,
37     // so we can not get operation's name from response.
GetServiceRequestName()38     inline virtual const char* GetServiceRequestName() const override { return "AdminInitiateAuth"; }
39 
40     Aws::String SerializePayload() const override;
41 
42     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
43 
44 
45     /**
46      * <p>The ID of the Amazon Cognito user pool.</p>
47      */
GetUserPoolId()48     inline const Aws::String& GetUserPoolId() const{ return m_userPoolId; }
49 
50     /**
51      * <p>The ID of the Amazon Cognito user pool.</p>
52      */
UserPoolIdHasBeenSet()53     inline bool UserPoolIdHasBeenSet() const { return m_userPoolIdHasBeenSet; }
54 
55     /**
56      * <p>The ID of the Amazon Cognito user pool.</p>
57      */
SetUserPoolId(const Aws::String & value)58     inline void SetUserPoolId(const Aws::String& value) { m_userPoolIdHasBeenSet = true; m_userPoolId = value; }
59 
60     /**
61      * <p>The ID of the Amazon Cognito user pool.</p>
62      */
SetUserPoolId(Aws::String && value)63     inline void SetUserPoolId(Aws::String&& value) { m_userPoolIdHasBeenSet = true; m_userPoolId = std::move(value); }
64 
65     /**
66      * <p>The ID of the Amazon Cognito user pool.</p>
67      */
SetUserPoolId(const char * value)68     inline void SetUserPoolId(const char* value) { m_userPoolIdHasBeenSet = true; m_userPoolId.assign(value); }
69 
70     /**
71      * <p>The ID of the Amazon Cognito user pool.</p>
72      */
WithUserPoolId(const Aws::String & value)73     inline AdminInitiateAuthRequest& WithUserPoolId(const Aws::String& value) { SetUserPoolId(value); return *this;}
74 
75     /**
76      * <p>The ID of the Amazon Cognito user pool.</p>
77      */
WithUserPoolId(Aws::String && value)78     inline AdminInitiateAuthRequest& WithUserPoolId(Aws::String&& value) { SetUserPoolId(std::move(value)); return *this;}
79 
80     /**
81      * <p>The ID of the Amazon Cognito user pool.</p>
82      */
WithUserPoolId(const char * value)83     inline AdminInitiateAuthRequest& WithUserPoolId(const char* value) { SetUserPoolId(value); return *this;}
84 
85 
86     /**
87      * <p>The app client ID.</p>
88      */
GetClientId()89     inline const Aws::String& GetClientId() const{ return m_clientId; }
90 
91     /**
92      * <p>The app client ID.</p>
93      */
ClientIdHasBeenSet()94     inline bool ClientIdHasBeenSet() const { return m_clientIdHasBeenSet; }
95 
96     /**
97      * <p>The app client ID.</p>
98      */
SetClientId(const Aws::String & value)99     inline void SetClientId(const Aws::String& value) { m_clientIdHasBeenSet = true; m_clientId = value; }
100 
101     /**
102      * <p>The app client ID.</p>
103      */
SetClientId(Aws::String && value)104     inline void SetClientId(Aws::String&& value) { m_clientIdHasBeenSet = true; m_clientId = std::move(value); }
105 
106     /**
107      * <p>The app client ID.</p>
108      */
SetClientId(const char * value)109     inline void SetClientId(const char* value) { m_clientIdHasBeenSet = true; m_clientId.assign(value); }
110 
111     /**
112      * <p>The app client ID.</p>
113      */
WithClientId(const Aws::String & value)114     inline AdminInitiateAuthRequest& WithClientId(const Aws::String& value) { SetClientId(value); return *this;}
115 
116     /**
117      * <p>The app client ID.</p>
118      */
WithClientId(Aws::String && value)119     inline AdminInitiateAuthRequest& WithClientId(Aws::String&& value) { SetClientId(std::move(value)); return *this;}
120 
121     /**
122      * <p>The app client ID.</p>
123      */
WithClientId(const char * value)124     inline AdminInitiateAuthRequest& WithClientId(const char* value) { SetClientId(value); return *this;}
125 
126 
127     /**
128      * <p>The authentication flow for this call to execute. The API action will depend
129      * on this value. For example:</p> <ul> <li> <p> <code>REFRESH_TOKEN_AUTH</code>
130      * will take in a valid refresh token and return new tokens.</p> </li> <li> <p>
131      * <code>USER_SRP_AUTH</code> will take in <code>USERNAME</code> and
132      * <code>SRP_A</code> and return the SRP variables to be used for next challenge
133      * execution.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code> will take in
134      * <code>USERNAME</code> and <code>PASSWORD</code> and return the next challenge or
135      * tokens.</p> </li> </ul> <p>Valid values include:</p> <ul> <li> <p>
136      * <code>USER_SRP_AUTH</code>: Authentication flow for the Secure Remote Password
137      * (SRP) protocol.</p> </li> <li> <p>
138      * <code>REFRESH_TOKEN_AUTH</code>/<code>REFRESH_TOKEN</code>: Authentication flow
139      * for refreshing the access token and ID token by supplying a valid refresh
140      * token.</p> </li> <li> <p> <code>CUSTOM_AUTH</code>: Custom authentication
141      * flow.</p> </li> <li> <p> <code>ADMIN_NO_SRP_AUTH</code>: Non-SRP authentication
142      * flow; you can pass in the USERNAME and PASSWORD directly if the flow is enabled
143      * for calling the app client.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code>:
144      * Non-SRP authentication flow; USERNAME and PASSWORD are passed directly. If a
145      * user migration Lambda trigger is set, this flow will invoke the user migration
146      * Lambda if the USERNAME is not found in the user pool. </p> </li> <li> <p>
147      * <code>ADMIN_USER_PASSWORD_AUTH</code>: Admin-based user password authentication.
148      * This replaces the <code>ADMIN_NO_SRP_AUTH</code> authentication flow. In this
149      * flow, Cognito receives the password in the request instead of using the SRP
150      * process to verify passwords.</p> </li> </ul>
151      */
GetAuthFlow()152     inline const AuthFlowType& GetAuthFlow() const{ return m_authFlow; }
153 
154     /**
155      * <p>The authentication flow for this call to execute. The API action will depend
156      * on this value. For example:</p> <ul> <li> <p> <code>REFRESH_TOKEN_AUTH</code>
157      * will take in a valid refresh token and return new tokens.</p> </li> <li> <p>
158      * <code>USER_SRP_AUTH</code> will take in <code>USERNAME</code> and
159      * <code>SRP_A</code> and return the SRP variables to be used for next challenge
160      * execution.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code> will take in
161      * <code>USERNAME</code> and <code>PASSWORD</code> and return the next challenge or
162      * tokens.</p> </li> </ul> <p>Valid values include:</p> <ul> <li> <p>
163      * <code>USER_SRP_AUTH</code>: Authentication flow for the Secure Remote Password
164      * (SRP) protocol.</p> </li> <li> <p>
165      * <code>REFRESH_TOKEN_AUTH</code>/<code>REFRESH_TOKEN</code>: Authentication flow
166      * for refreshing the access token and ID token by supplying a valid refresh
167      * token.</p> </li> <li> <p> <code>CUSTOM_AUTH</code>: Custom authentication
168      * flow.</p> </li> <li> <p> <code>ADMIN_NO_SRP_AUTH</code>: Non-SRP authentication
169      * flow; you can pass in the USERNAME and PASSWORD directly if the flow is enabled
170      * for calling the app client.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code>:
171      * Non-SRP authentication flow; USERNAME and PASSWORD are passed directly. If a
172      * user migration Lambda trigger is set, this flow will invoke the user migration
173      * Lambda if the USERNAME is not found in the user pool. </p> </li> <li> <p>
174      * <code>ADMIN_USER_PASSWORD_AUTH</code>: Admin-based user password authentication.
175      * This replaces the <code>ADMIN_NO_SRP_AUTH</code> authentication flow. In this
176      * flow, Cognito receives the password in the request instead of using the SRP
177      * process to verify passwords.</p> </li> </ul>
178      */
AuthFlowHasBeenSet()179     inline bool AuthFlowHasBeenSet() const { return m_authFlowHasBeenSet; }
180 
181     /**
182      * <p>The authentication flow for this call to execute. The API action will depend
183      * on this value. For example:</p> <ul> <li> <p> <code>REFRESH_TOKEN_AUTH</code>
184      * will take in a valid refresh token and return new tokens.</p> </li> <li> <p>
185      * <code>USER_SRP_AUTH</code> will take in <code>USERNAME</code> and
186      * <code>SRP_A</code> and return the SRP variables to be used for next challenge
187      * execution.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code> will take in
188      * <code>USERNAME</code> and <code>PASSWORD</code> and return the next challenge or
189      * tokens.</p> </li> </ul> <p>Valid values include:</p> <ul> <li> <p>
190      * <code>USER_SRP_AUTH</code>: Authentication flow for the Secure Remote Password
191      * (SRP) protocol.</p> </li> <li> <p>
192      * <code>REFRESH_TOKEN_AUTH</code>/<code>REFRESH_TOKEN</code>: Authentication flow
193      * for refreshing the access token and ID token by supplying a valid refresh
194      * token.</p> </li> <li> <p> <code>CUSTOM_AUTH</code>: Custom authentication
195      * flow.</p> </li> <li> <p> <code>ADMIN_NO_SRP_AUTH</code>: Non-SRP authentication
196      * flow; you can pass in the USERNAME and PASSWORD directly if the flow is enabled
197      * for calling the app client.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code>:
198      * Non-SRP authentication flow; USERNAME and PASSWORD are passed directly. If a
199      * user migration Lambda trigger is set, this flow will invoke the user migration
200      * Lambda if the USERNAME is not found in the user pool. </p> </li> <li> <p>
201      * <code>ADMIN_USER_PASSWORD_AUTH</code>: Admin-based user password authentication.
202      * This replaces the <code>ADMIN_NO_SRP_AUTH</code> authentication flow. In this
203      * flow, Cognito receives the password in the request instead of using the SRP
204      * process to verify passwords.</p> </li> </ul>
205      */
SetAuthFlow(const AuthFlowType & value)206     inline void SetAuthFlow(const AuthFlowType& value) { m_authFlowHasBeenSet = true; m_authFlow = value; }
207 
208     /**
209      * <p>The authentication flow for this call to execute. The API action will depend
210      * on this value. For example:</p> <ul> <li> <p> <code>REFRESH_TOKEN_AUTH</code>
211      * will take in a valid refresh token and return new tokens.</p> </li> <li> <p>
212      * <code>USER_SRP_AUTH</code> will take in <code>USERNAME</code> and
213      * <code>SRP_A</code> and return the SRP variables to be used for next challenge
214      * execution.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code> will take in
215      * <code>USERNAME</code> and <code>PASSWORD</code> and return the next challenge or
216      * tokens.</p> </li> </ul> <p>Valid values include:</p> <ul> <li> <p>
217      * <code>USER_SRP_AUTH</code>: Authentication flow for the Secure Remote Password
218      * (SRP) protocol.</p> </li> <li> <p>
219      * <code>REFRESH_TOKEN_AUTH</code>/<code>REFRESH_TOKEN</code>: Authentication flow
220      * for refreshing the access token and ID token by supplying a valid refresh
221      * token.</p> </li> <li> <p> <code>CUSTOM_AUTH</code>: Custom authentication
222      * flow.</p> </li> <li> <p> <code>ADMIN_NO_SRP_AUTH</code>: Non-SRP authentication
223      * flow; you can pass in the USERNAME and PASSWORD directly if the flow is enabled
224      * for calling the app client.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code>:
225      * Non-SRP authentication flow; USERNAME and PASSWORD are passed directly. If a
226      * user migration Lambda trigger is set, this flow will invoke the user migration
227      * Lambda if the USERNAME is not found in the user pool. </p> </li> <li> <p>
228      * <code>ADMIN_USER_PASSWORD_AUTH</code>: Admin-based user password authentication.
229      * This replaces the <code>ADMIN_NO_SRP_AUTH</code> authentication flow. In this
230      * flow, Cognito receives the password in the request instead of using the SRP
231      * process to verify passwords.</p> </li> </ul>
232      */
SetAuthFlow(AuthFlowType && value)233     inline void SetAuthFlow(AuthFlowType&& value) { m_authFlowHasBeenSet = true; m_authFlow = std::move(value); }
234 
235     /**
236      * <p>The authentication flow for this call to execute. The API action will depend
237      * on this value. For example:</p> <ul> <li> <p> <code>REFRESH_TOKEN_AUTH</code>
238      * will take in a valid refresh token and return new tokens.</p> </li> <li> <p>
239      * <code>USER_SRP_AUTH</code> will take in <code>USERNAME</code> and
240      * <code>SRP_A</code> and return the SRP variables to be used for next challenge
241      * execution.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code> will take in
242      * <code>USERNAME</code> and <code>PASSWORD</code> and return the next challenge or
243      * tokens.</p> </li> </ul> <p>Valid values include:</p> <ul> <li> <p>
244      * <code>USER_SRP_AUTH</code>: Authentication flow for the Secure Remote Password
245      * (SRP) protocol.</p> </li> <li> <p>
246      * <code>REFRESH_TOKEN_AUTH</code>/<code>REFRESH_TOKEN</code>: Authentication flow
247      * for refreshing the access token and ID token by supplying a valid refresh
248      * token.</p> </li> <li> <p> <code>CUSTOM_AUTH</code>: Custom authentication
249      * flow.</p> </li> <li> <p> <code>ADMIN_NO_SRP_AUTH</code>: Non-SRP authentication
250      * flow; you can pass in the USERNAME and PASSWORD directly if the flow is enabled
251      * for calling the app client.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code>:
252      * Non-SRP authentication flow; USERNAME and PASSWORD are passed directly. If a
253      * user migration Lambda trigger is set, this flow will invoke the user migration
254      * Lambda if the USERNAME is not found in the user pool. </p> </li> <li> <p>
255      * <code>ADMIN_USER_PASSWORD_AUTH</code>: Admin-based user password authentication.
256      * This replaces the <code>ADMIN_NO_SRP_AUTH</code> authentication flow. In this
257      * flow, Cognito receives the password in the request instead of using the SRP
258      * process to verify passwords.</p> </li> </ul>
259      */
WithAuthFlow(const AuthFlowType & value)260     inline AdminInitiateAuthRequest& WithAuthFlow(const AuthFlowType& value) { SetAuthFlow(value); return *this;}
261 
262     /**
263      * <p>The authentication flow for this call to execute. The API action will depend
264      * on this value. For example:</p> <ul> <li> <p> <code>REFRESH_TOKEN_AUTH</code>
265      * will take in a valid refresh token and return new tokens.</p> </li> <li> <p>
266      * <code>USER_SRP_AUTH</code> will take in <code>USERNAME</code> and
267      * <code>SRP_A</code> and return the SRP variables to be used for next challenge
268      * execution.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code> will take in
269      * <code>USERNAME</code> and <code>PASSWORD</code> and return the next challenge or
270      * tokens.</p> </li> </ul> <p>Valid values include:</p> <ul> <li> <p>
271      * <code>USER_SRP_AUTH</code>: Authentication flow for the Secure Remote Password
272      * (SRP) protocol.</p> </li> <li> <p>
273      * <code>REFRESH_TOKEN_AUTH</code>/<code>REFRESH_TOKEN</code>: Authentication flow
274      * for refreshing the access token and ID token by supplying a valid refresh
275      * token.</p> </li> <li> <p> <code>CUSTOM_AUTH</code>: Custom authentication
276      * flow.</p> </li> <li> <p> <code>ADMIN_NO_SRP_AUTH</code>: Non-SRP authentication
277      * flow; you can pass in the USERNAME and PASSWORD directly if the flow is enabled
278      * for calling the app client.</p> </li> <li> <p> <code>USER_PASSWORD_AUTH</code>:
279      * Non-SRP authentication flow; USERNAME and PASSWORD are passed directly. If a
280      * user migration Lambda trigger is set, this flow will invoke the user migration
281      * Lambda if the USERNAME is not found in the user pool. </p> </li> <li> <p>
282      * <code>ADMIN_USER_PASSWORD_AUTH</code>: Admin-based user password authentication.
283      * This replaces the <code>ADMIN_NO_SRP_AUTH</code> authentication flow. In this
284      * flow, Cognito receives the password in the request instead of using the SRP
285      * process to verify passwords.</p> </li> </ul>
286      */
WithAuthFlow(AuthFlowType && value)287     inline AdminInitiateAuthRequest& WithAuthFlow(AuthFlowType&& value) { SetAuthFlow(std::move(value)); return *this;}
288 
289 
290     /**
291      * <p>The authentication parameters. These are inputs corresponding to the
292      * <code>AuthFlow</code> that you are invoking. The required values depend on the
293      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
294      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
295      * <code>SECRET_HASH</code> (required if the app client is configured with a client
296      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
297      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
298      * (required), <code>SECRET_HASH</code> (required if the app client is configured
299      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
300      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
301      * <code>SECRET_HASH</code> (if app client is configured with client secret),
302      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
303      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
304      * <code>SECRET_HASH</code> (if app client is configured with client secret),
305      * <code>DEVICE_KEY</code>. To start the authentication flow with password
306      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
307      * SRP_A Value)</code>.</p> </li> </ul>
308      */
GetAuthParameters()309     inline const Aws::Map<Aws::String, Aws::String>& GetAuthParameters() const{ return m_authParameters; }
310 
311     /**
312      * <p>The authentication parameters. These are inputs corresponding to the
313      * <code>AuthFlow</code> that you are invoking. The required values depend on the
314      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
315      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
316      * <code>SECRET_HASH</code> (required if the app client is configured with a client
317      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
318      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
319      * (required), <code>SECRET_HASH</code> (required if the app client is configured
320      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
321      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
322      * <code>SECRET_HASH</code> (if app client is configured with client secret),
323      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
324      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
325      * <code>SECRET_HASH</code> (if app client is configured with client secret),
326      * <code>DEVICE_KEY</code>. To start the authentication flow with password
327      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
328      * SRP_A Value)</code>.</p> </li> </ul>
329      */
AuthParametersHasBeenSet()330     inline bool AuthParametersHasBeenSet() const { return m_authParametersHasBeenSet; }
331 
332     /**
333      * <p>The authentication parameters. These are inputs corresponding to the
334      * <code>AuthFlow</code> that you are invoking. The required values depend on the
335      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
336      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
337      * <code>SECRET_HASH</code> (required if the app client is configured with a client
338      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
339      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
340      * (required), <code>SECRET_HASH</code> (required if the app client is configured
341      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
342      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
343      * <code>SECRET_HASH</code> (if app client is configured with client secret),
344      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
345      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
346      * <code>SECRET_HASH</code> (if app client is configured with client secret),
347      * <code>DEVICE_KEY</code>. To start the authentication flow with password
348      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
349      * SRP_A Value)</code>.</p> </li> </ul>
350      */
SetAuthParameters(const Aws::Map<Aws::String,Aws::String> & value)351     inline void SetAuthParameters(const Aws::Map<Aws::String, Aws::String>& value) { m_authParametersHasBeenSet = true; m_authParameters = value; }
352 
353     /**
354      * <p>The authentication parameters. These are inputs corresponding to the
355      * <code>AuthFlow</code> that you are invoking. The required values depend on the
356      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
357      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
358      * <code>SECRET_HASH</code> (required if the app client is configured with a client
359      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
360      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
361      * (required), <code>SECRET_HASH</code> (required if the app client is configured
362      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
363      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
364      * <code>SECRET_HASH</code> (if app client is configured with client secret),
365      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
366      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
367      * <code>SECRET_HASH</code> (if app client is configured with client secret),
368      * <code>DEVICE_KEY</code>. To start the authentication flow with password
369      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
370      * SRP_A Value)</code>.</p> </li> </ul>
371      */
SetAuthParameters(Aws::Map<Aws::String,Aws::String> && value)372     inline void SetAuthParameters(Aws::Map<Aws::String, Aws::String>&& value) { m_authParametersHasBeenSet = true; m_authParameters = std::move(value); }
373 
374     /**
375      * <p>The authentication parameters. These are inputs corresponding to the
376      * <code>AuthFlow</code> that you are invoking. The required values depend on the
377      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
378      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
379      * <code>SECRET_HASH</code> (required if the app client is configured with a client
380      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
381      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
382      * (required), <code>SECRET_HASH</code> (required if the app client is configured
383      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
384      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
385      * <code>SECRET_HASH</code> (if app client is configured with client secret),
386      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
387      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
388      * <code>SECRET_HASH</code> (if app client is configured with client secret),
389      * <code>DEVICE_KEY</code>. To start the authentication flow with password
390      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
391      * SRP_A Value)</code>.</p> </li> </ul>
392      */
WithAuthParameters(const Aws::Map<Aws::String,Aws::String> & value)393     inline AdminInitiateAuthRequest& WithAuthParameters(const Aws::Map<Aws::String, Aws::String>& value) { SetAuthParameters(value); return *this;}
394 
395     /**
396      * <p>The authentication parameters. These are inputs corresponding to the
397      * <code>AuthFlow</code> that you are invoking. The required values depend on the
398      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
399      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
400      * <code>SECRET_HASH</code> (required if the app client is configured with a client
401      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
402      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
403      * (required), <code>SECRET_HASH</code> (required if the app client is configured
404      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
405      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
406      * <code>SECRET_HASH</code> (if app client is configured with client secret),
407      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
408      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
409      * <code>SECRET_HASH</code> (if app client is configured with client secret),
410      * <code>DEVICE_KEY</code>. To start the authentication flow with password
411      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
412      * SRP_A Value)</code>.</p> </li> </ul>
413      */
WithAuthParameters(Aws::Map<Aws::String,Aws::String> && value)414     inline AdminInitiateAuthRequest& WithAuthParameters(Aws::Map<Aws::String, Aws::String>&& value) { SetAuthParameters(std::move(value)); return *this;}
415 
416     /**
417      * <p>The authentication parameters. These are inputs corresponding to the
418      * <code>AuthFlow</code> that you are invoking. The required values depend on the
419      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
420      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
421      * <code>SECRET_HASH</code> (required if the app client is configured with a client
422      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
423      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
424      * (required), <code>SECRET_HASH</code> (required if the app client is configured
425      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
426      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
427      * <code>SECRET_HASH</code> (if app client is configured with client secret),
428      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
429      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
430      * <code>SECRET_HASH</code> (if app client is configured with client secret),
431      * <code>DEVICE_KEY</code>. To start the authentication flow with password
432      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
433      * SRP_A Value)</code>.</p> </li> </ul>
434      */
AddAuthParameters(const Aws::String & key,const Aws::String & value)435     inline AdminInitiateAuthRequest& AddAuthParameters(const Aws::String& key, const Aws::String& value) { m_authParametersHasBeenSet = true; m_authParameters.emplace(key, value); return *this; }
436 
437     /**
438      * <p>The authentication parameters. These are inputs corresponding to the
439      * <code>AuthFlow</code> that you are invoking. The required values depend on the
440      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
441      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
442      * <code>SECRET_HASH</code> (required if the app client is configured with a client
443      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
444      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
445      * (required), <code>SECRET_HASH</code> (required if the app client is configured
446      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
447      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
448      * <code>SECRET_HASH</code> (if app client is configured with client secret),
449      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
450      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
451      * <code>SECRET_HASH</code> (if app client is configured with client secret),
452      * <code>DEVICE_KEY</code>. To start the authentication flow with password
453      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
454      * SRP_A Value)</code>.</p> </li> </ul>
455      */
AddAuthParameters(Aws::String && key,const Aws::String & value)456     inline AdminInitiateAuthRequest& AddAuthParameters(Aws::String&& key, const Aws::String& value) { m_authParametersHasBeenSet = true; m_authParameters.emplace(std::move(key), value); return *this; }
457 
458     /**
459      * <p>The authentication parameters. These are inputs corresponding to the
460      * <code>AuthFlow</code> that you are invoking. The required values depend on the
461      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
462      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
463      * <code>SECRET_HASH</code> (required if the app client is configured with a client
464      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
465      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
466      * (required), <code>SECRET_HASH</code> (required if the app client is configured
467      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
468      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
469      * <code>SECRET_HASH</code> (if app client is configured with client secret),
470      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
471      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
472      * <code>SECRET_HASH</code> (if app client is configured with client secret),
473      * <code>DEVICE_KEY</code>. To start the authentication flow with password
474      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
475      * SRP_A Value)</code>.</p> </li> </ul>
476      */
AddAuthParameters(const Aws::String & key,Aws::String && value)477     inline AdminInitiateAuthRequest& AddAuthParameters(const Aws::String& key, Aws::String&& value) { m_authParametersHasBeenSet = true; m_authParameters.emplace(key, std::move(value)); return *this; }
478 
479     /**
480      * <p>The authentication parameters. These are inputs corresponding to the
481      * <code>AuthFlow</code> that you are invoking. The required values depend on the
482      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
483      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
484      * <code>SECRET_HASH</code> (required if the app client is configured with a client
485      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
486      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
487      * (required), <code>SECRET_HASH</code> (required if the app client is configured
488      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
489      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
490      * <code>SECRET_HASH</code> (if app client is configured with client secret),
491      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
492      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
493      * <code>SECRET_HASH</code> (if app client is configured with client secret),
494      * <code>DEVICE_KEY</code>. To start the authentication flow with password
495      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
496      * SRP_A Value)</code>.</p> </li> </ul>
497      */
AddAuthParameters(Aws::String && key,Aws::String && value)498     inline AdminInitiateAuthRequest& AddAuthParameters(Aws::String&& key, Aws::String&& value) { m_authParametersHasBeenSet = true; m_authParameters.emplace(std::move(key), std::move(value)); return *this; }
499 
500     /**
501      * <p>The authentication parameters. These are inputs corresponding to the
502      * <code>AuthFlow</code> that you are invoking. The required values depend on the
503      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
504      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
505      * <code>SECRET_HASH</code> (required if the app client is configured with a client
506      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
507      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
508      * (required), <code>SECRET_HASH</code> (required if the app client is configured
509      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
510      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
511      * <code>SECRET_HASH</code> (if app client is configured with client secret),
512      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
513      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
514      * <code>SECRET_HASH</code> (if app client is configured with client secret),
515      * <code>DEVICE_KEY</code>. To start the authentication flow with password
516      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
517      * SRP_A Value)</code>.</p> </li> </ul>
518      */
AddAuthParameters(const char * key,Aws::String && value)519     inline AdminInitiateAuthRequest& AddAuthParameters(const char* key, Aws::String&& value) { m_authParametersHasBeenSet = true; m_authParameters.emplace(key, std::move(value)); return *this; }
520 
521     /**
522      * <p>The authentication parameters. These are inputs corresponding to the
523      * <code>AuthFlow</code> that you are invoking. The required values depend on the
524      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
525      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
526      * <code>SECRET_HASH</code> (required if the app client is configured with a client
527      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
528      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
529      * (required), <code>SECRET_HASH</code> (required if the app client is configured
530      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
531      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
532      * <code>SECRET_HASH</code> (if app client is configured with client secret),
533      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
534      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
535      * <code>SECRET_HASH</code> (if app client is configured with client secret),
536      * <code>DEVICE_KEY</code>. To start the authentication flow with password
537      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
538      * SRP_A Value)</code>.</p> </li> </ul>
539      */
AddAuthParameters(Aws::String && key,const char * value)540     inline AdminInitiateAuthRequest& AddAuthParameters(Aws::String&& key, const char* value) { m_authParametersHasBeenSet = true; m_authParameters.emplace(std::move(key), value); return *this; }
541 
542     /**
543      * <p>The authentication parameters. These are inputs corresponding to the
544      * <code>AuthFlow</code> that you are invoking. The required values depend on the
545      * value of <code>AuthFlow</code>:</p> <ul> <li> <p>For <code>USER_SRP_AUTH</code>:
546      * <code>USERNAME</code> (required), <code>SRP_A</code> (required),
547      * <code>SECRET_HASH</code> (required if the app client is configured with a client
548      * secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
549      * <code>REFRESH_TOKEN_AUTH/REFRESH_TOKEN</code>: <code>REFRESH_TOKEN</code>
550      * (required), <code>SECRET_HASH</code> (required if the app client is configured
551      * with a client secret), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
552      * <code>ADMIN_NO_SRP_AUTH</code>: <code>USERNAME</code> (required),
553      * <code>SECRET_HASH</code> (if app client is configured with client secret),
554      * <code>PASSWORD</code> (required), <code>DEVICE_KEY</code>.</p> </li> <li> <p>For
555      * <code>CUSTOM_AUTH</code>: <code>USERNAME</code> (required),
556      * <code>SECRET_HASH</code> (if app client is configured with client secret),
557      * <code>DEVICE_KEY</code>. To start the authentication flow with password
558      * verification, include <code>ChallengeName: SRP_A</code> and <code>SRP_A: (The
559      * SRP_A Value)</code>.</p> </li> </ul>
560      */
AddAuthParameters(const char * key,const char * value)561     inline AdminInitiateAuthRequest& AddAuthParameters(const char* key, const char* value) { m_authParametersHasBeenSet = true; m_authParameters.emplace(key, value); return *this; }
562 
563 
564     /**
565      * <p>A map of custom key-value pairs that you can provide as input for certain
566      * custom workflows that this action triggers.</p> <p>You create custom workflows
567      * by assigning Lambda functions to user pool triggers. When you use the
568      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
569      * are specified for various triggers. The ClientMetadata value is passed as input
570      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
571      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
572      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
573      * passes a JSON payload, which the function receives as input. This payload
574      * contains a <code>validationData</code> attribute, which provides the data that
575      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
576      * In your function code in Lambda, you can process the <code>validationData</code>
577      * value to enhance your workflow for your specific needs.</p> <p>When you use the
578      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
579      * following triggers, but it does not provide the ClientMetadata value as
580      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
581      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
582      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
583      * </li> </ul> <p>For more information, see <a
584      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
585      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
586      * Guide</i>.</p>  <p>Take the following limitations into consideration when
587      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
588      * store the ClientMetadata value. This data is available only to Lambda triggers
589      * that are assigned to a user pool to support custom workflows. If your user pool
590      * configuration does not include triggers, the ClientMetadata parameter serves no
591      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
592      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
593      * value, so don't use it to provide sensitive information.</p> </li> </ul>
594      */
GetClientMetadata()595     inline const Aws::Map<Aws::String, Aws::String>& GetClientMetadata() const{ return m_clientMetadata; }
596 
597     /**
598      * <p>A map of custom key-value pairs that you can provide as input for certain
599      * custom workflows that this action triggers.</p> <p>You create custom workflows
600      * by assigning Lambda functions to user pool triggers. When you use the
601      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
602      * are specified for various triggers. The ClientMetadata value is passed as input
603      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
604      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
605      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
606      * passes a JSON payload, which the function receives as input. This payload
607      * contains a <code>validationData</code> attribute, which provides the data that
608      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
609      * In your function code in Lambda, you can process the <code>validationData</code>
610      * value to enhance your workflow for your specific needs.</p> <p>When you use the
611      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
612      * following triggers, but it does not provide the ClientMetadata value as
613      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
614      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
615      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
616      * </li> </ul> <p>For more information, see <a
617      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
618      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
619      * Guide</i>.</p>  <p>Take the following limitations into consideration when
620      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
621      * store the ClientMetadata value. This data is available only to Lambda triggers
622      * that are assigned to a user pool to support custom workflows. If your user pool
623      * configuration does not include triggers, the ClientMetadata parameter serves no
624      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
625      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
626      * value, so don't use it to provide sensitive information.</p> </li> </ul>
627      */
ClientMetadataHasBeenSet()628     inline bool ClientMetadataHasBeenSet() const { return m_clientMetadataHasBeenSet; }
629 
630     /**
631      * <p>A map of custom key-value pairs that you can provide as input for certain
632      * custom workflows that this action triggers.</p> <p>You create custom workflows
633      * by assigning Lambda functions to user pool triggers. When you use the
634      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
635      * are specified for various triggers. The ClientMetadata value is passed as input
636      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
637      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
638      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
639      * passes a JSON payload, which the function receives as input. This payload
640      * contains a <code>validationData</code> attribute, which provides the data that
641      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
642      * In your function code in Lambda, you can process the <code>validationData</code>
643      * value to enhance your workflow for your specific needs.</p> <p>When you use the
644      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
645      * following triggers, but it does not provide the ClientMetadata value as
646      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
647      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
648      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
649      * </li> </ul> <p>For more information, see <a
650      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
651      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
652      * Guide</i>.</p>  <p>Take the following limitations into consideration when
653      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
654      * store the ClientMetadata value. This data is available only to Lambda triggers
655      * that are assigned to a user pool to support custom workflows. If your user pool
656      * configuration does not include triggers, the ClientMetadata parameter serves no
657      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
658      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
659      * value, so don't use it to provide sensitive information.</p> </li> </ul>
660      */
SetClientMetadata(const Aws::Map<Aws::String,Aws::String> & value)661     inline void SetClientMetadata(const Aws::Map<Aws::String, Aws::String>& value) { m_clientMetadataHasBeenSet = true; m_clientMetadata = value; }
662 
663     /**
664      * <p>A map of custom key-value pairs that you can provide as input for certain
665      * custom workflows that this action triggers.</p> <p>You create custom workflows
666      * by assigning Lambda functions to user pool triggers. When you use the
667      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
668      * are specified for various triggers. The ClientMetadata value is passed as input
669      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
670      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
671      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
672      * passes a JSON payload, which the function receives as input. This payload
673      * contains a <code>validationData</code> attribute, which provides the data that
674      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
675      * In your function code in Lambda, you can process the <code>validationData</code>
676      * value to enhance your workflow for your specific needs.</p> <p>When you use the
677      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
678      * following triggers, but it does not provide the ClientMetadata value as
679      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
680      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
681      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
682      * </li> </ul> <p>For more information, see <a
683      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
684      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
685      * Guide</i>.</p>  <p>Take the following limitations into consideration when
686      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
687      * store the ClientMetadata value. This data is available only to Lambda triggers
688      * that are assigned to a user pool to support custom workflows. If your user pool
689      * configuration does not include triggers, the ClientMetadata parameter serves no
690      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
691      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
692      * value, so don't use it to provide sensitive information.</p> </li> </ul>
693      */
SetClientMetadata(Aws::Map<Aws::String,Aws::String> && value)694     inline void SetClientMetadata(Aws::Map<Aws::String, Aws::String>&& value) { m_clientMetadataHasBeenSet = true; m_clientMetadata = std::move(value); }
695 
696     /**
697      * <p>A map of custom key-value pairs that you can provide as input for certain
698      * custom workflows that this action triggers.</p> <p>You create custom workflows
699      * by assigning Lambda functions to user pool triggers. When you use the
700      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
701      * are specified for various triggers. The ClientMetadata value is passed as input
702      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
703      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
704      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
705      * passes a JSON payload, which the function receives as input. This payload
706      * contains a <code>validationData</code> attribute, which provides the data that
707      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
708      * In your function code in Lambda, you can process the <code>validationData</code>
709      * value to enhance your workflow for your specific needs.</p> <p>When you use the
710      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
711      * following triggers, but it does not provide the ClientMetadata value as
712      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
713      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
714      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
715      * </li> </ul> <p>For more information, see <a
716      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
717      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
718      * Guide</i>.</p>  <p>Take the following limitations into consideration when
719      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
720      * store the ClientMetadata value. This data is available only to Lambda triggers
721      * that are assigned to a user pool to support custom workflows. If your user pool
722      * configuration does not include triggers, the ClientMetadata parameter serves no
723      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
724      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
725      * value, so don't use it to provide sensitive information.</p> </li> </ul>
726      */
WithClientMetadata(const Aws::Map<Aws::String,Aws::String> & value)727     inline AdminInitiateAuthRequest& WithClientMetadata(const Aws::Map<Aws::String, Aws::String>& value) { SetClientMetadata(value); return *this;}
728 
729     /**
730      * <p>A map of custom key-value pairs that you can provide as input for certain
731      * custom workflows that this action triggers.</p> <p>You create custom workflows
732      * by assigning Lambda functions to user pool triggers. When you use the
733      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
734      * are specified for various triggers. The ClientMetadata value is passed as input
735      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
736      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
737      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
738      * passes a JSON payload, which the function receives as input. This payload
739      * contains a <code>validationData</code> attribute, which provides the data that
740      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
741      * In your function code in Lambda, you can process the <code>validationData</code>
742      * value to enhance your workflow for your specific needs.</p> <p>When you use the
743      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
744      * following triggers, but it does not provide the ClientMetadata value as
745      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
746      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
747      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
748      * </li> </ul> <p>For more information, see <a
749      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
750      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
751      * Guide</i>.</p>  <p>Take the following limitations into consideration when
752      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
753      * store the ClientMetadata value. This data is available only to Lambda triggers
754      * that are assigned to a user pool to support custom workflows. If your user pool
755      * configuration does not include triggers, the ClientMetadata parameter serves no
756      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
757      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
758      * value, so don't use it to provide sensitive information.</p> </li> </ul>
759      */
WithClientMetadata(Aws::Map<Aws::String,Aws::String> && value)760     inline AdminInitiateAuthRequest& WithClientMetadata(Aws::Map<Aws::String, Aws::String>&& value) { SetClientMetadata(std::move(value)); return *this;}
761 
762     /**
763      * <p>A map of custom key-value pairs that you can provide as input for certain
764      * custom workflows that this action triggers.</p> <p>You create custom workflows
765      * by assigning Lambda functions to user pool triggers. When you use the
766      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
767      * are specified for various triggers. The ClientMetadata value is passed as input
768      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
769      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
770      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
771      * passes a JSON payload, which the function receives as input. This payload
772      * contains a <code>validationData</code> attribute, which provides the data that
773      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
774      * In your function code in Lambda, you can process the <code>validationData</code>
775      * value to enhance your workflow for your specific needs.</p> <p>When you use the
776      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
777      * following triggers, but it does not provide the ClientMetadata value as
778      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
779      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
780      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
781      * </li> </ul> <p>For more information, see <a
782      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
783      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
784      * Guide</i>.</p>  <p>Take the following limitations into consideration when
785      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
786      * store the ClientMetadata value. This data is available only to Lambda triggers
787      * that are assigned to a user pool to support custom workflows. If your user pool
788      * configuration does not include triggers, the ClientMetadata parameter serves no
789      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
790      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
791      * value, so don't use it to provide sensitive information.</p> </li> </ul>
792      */
AddClientMetadata(const Aws::String & key,const Aws::String & value)793     inline AdminInitiateAuthRequest& AddClientMetadata(const Aws::String& key, const Aws::String& value) { m_clientMetadataHasBeenSet = true; m_clientMetadata.emplace(key, value); return *this; }
794 
795     /**
796      * <p>A map of custom key-value pairs that you can provide as input for certain
797      * custom workflows that this action triggers.</p> <p>You create custom workflows
798      * by assigning Lambda functions to user pool triggers. When you use the
799      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
800      * are specified for various triggers. The ClientMetadata value is passed as input
801      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
802      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
803      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
804      * passes a JSON payload, which the function receives as input. This payload
805      * contains a <code>validationData</code> attribute, which provides the data that
806      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
807      * In your function code in Lambda, you can process the <code>validationData</code>
808      * value to enhance your workflow for your specific needs.</p> <p>When you use the
809      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
810      * following triggers, but it does not provide the ClientMetadata value as
811      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
812      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
813      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
814      * </li> </ul> <p>For more information, see <a
815      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
816      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
817      * Guide</i>.</p>  <p>Take the following limitations into consideration when
818      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
819      * store the ClientMetadata value. This data is available only to Lambda triggers
820      * that are assigned to a user pool to support custom workflows. If your user pool
821      * configuration does not include triggers, the ClientMetadata parameter serves no
822      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
823      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
824      * value, so don't use it to provide sensitive information.</p> </li> </ul>
825      */
AddClientMetadata(Aws::String && key,const Aws::String & value)826     inline AdminInitiateAuthRequest& AddClientMetadata(Aws::String&& key, const Aws::String& value) { m_clientMetadataHasBeenSet = true; m_clientMetadata.emplace(std::move(key), value); return *this; }
827 
828     /**
829      * <p>A map of custom key-value pairs that you can provide as input for certain
830      * custom workflows that this action triggers.</p> <p>You create custom workflows
831      * by assigning Lambda functions to user pool triggers. When you use the
832      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
833      * are specified for various triggers. The ClientMetadata value is passed as input
834      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
835      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
836      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
837      * passes a JSON payload, which the function receives as input. This payload
838      * contains a <code>validationData</code> attribute, which provides the data that
839      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
840      * In your function code in Lambda, you can process the <code>validationData</code>
841      * value to enhance your workflow for your specific needs.</p> <p>When you use the
842      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
843      * following triggers, but it does not provide the ClientMetadata value as
844      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
845      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
846      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
847      * </li> </ul> <p>For more information, see <a
848      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
849      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
850      * Guide</i>.</p>  <p>Take the following limitations into consideration when
851      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
852      * store the ClientMetadata value. This data is available only to Lambda triggers
853      * that are assigned to a user pool to support custom workflows. If your user pool
854      * configuration does not include triggers, the ClientMetadata parameter serves no
855      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
856      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
857      * value, so don't use it to provide sensitive information.</p> </li> </ul>
858      */
AddClientMetadata(const Aws::String & key,Aws::String && value)859     inline AdminInitiateAuthRequest& AddClientMetadata(const Aws::String& key, Aws::String&& value) { m_clientMetadataHasBeenSet = true; m_clientMetadata.emplace(key, std::move(value)); return *this; }
860 
861     /**
862      * <p>A map of custom key-value pairs that you can provide as input for certain
863      * custom workflows that this action triggers.</p> <p>You create custom workflows
864      * by assigning Lambda functions to user pool triggers. When you use the
865      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
866      * are specified for various triggers. The ClientMetadata value is passed as input
867      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
868      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
869      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
870      * passes a JSON payload, which the function receives as input. This payload
871      * contains a <code>validationData</code> attribute, which provides the data that
872      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
873      * In your function code in Lambda, you can process the <code>validationData</code>
874      * value to enhance your workflow for your specific needs.</p> <p>When you use the
875      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
876      * following triggers, but it does not provide the ClientMetadata value as
877      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
878      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
879      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
880      * </li> </ul> <p>For more information, see <a
881      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
882      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
883      * Guide</i>.</p>  <p>Take the following limitations into consideration when
884      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
885      * store the ClientMetadata value. This data is available only to Lambda triggers
886      * that are assigned to a user pool to support custom workflows. If your user pool
887      * configuration does not include triggers, the ClientMetadata parameter serves no
888      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
889      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
890      * value, so don't use it to provide sensitive information.</p> </li> </ul>
891      */
AddClientMetadata(Aws::String && key,Aws::String && value)892     inline AdminInitiateAuthRequest& AddClientMetadata(Aws::String&& key, Aws::String&& value) { m_clientMetadataHasBeenSet = true; m_clientMetadata.emplace(std::move(key), std::move(value)); return *this; }
893 
894     /**
895      * <p>A map of custom key-value pairs that you can provide as input for certain
896      * custom workflows that this action triggers.</p> <p>You create custom workflows
897      * by assigning Lambda functions to user pool triggers. When you use the
898      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
899      * are specified for various triggers. The ClientMetadata value is passed as input
900      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
901      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
902      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
903      * passes a JSON payload, which the function receives as input. This payload
904      * contains a <code>validationData</code> attribute, which provides the data that
905      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
906      * In your function code in Lambda, you can process the <code>validationData</code>
907      * value to enhance your workflow for your specific needs.</p> <p>When you use the
908      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
909      * following triggers, but it does not provide the ClientMetadata value as
910      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
911      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
912      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
913      * </li> </ul> <p>For more information, see <a
914      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
915      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
916      * Guide</i>.</p>  <p>Take the following limitations into consideration when
917      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
918      * store the ClientMetadata value. This data is available only to Lambda triggers
919      * that are assigned to a user pool to support custom workflows. If your user pool
920      * configuration does not include triggers, the ClientMetadata parameter serves no
921      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
922      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
923      * value, so don't use it to provide sensitive information.</p> </li> </ul>
924      */
AddClientMetadata(const char * key,Aws::String && value)925     inline AdminInitiateAuthRequest& AddClientMetadata(const char* key, Aws::String&& value) { m_clientMetadataHasBeenSet = true; m_clientMetadata.emplace(key, std::move(value)); return *this; }
926 
927     /**
928      * <p>A map of custom key-value pairs that you can provide as input for certain
929      * custom workflows that this action triggers.</p> <p>You create custom workflows
930      * by assigning Lambda functions to user pool triggers. When you use the
931      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
932      * are specified for various triggers. The ClientMetadata value is passed as input
933      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
934      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
935      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
936      * passes a JSON payload, which the function receives as input. This payload
937      * contains a <code>validationData</code> attribute, which provides the data that
938      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
939      * In your function code in Lambda, you can process the <code>validationData</code>
940      * value to enhance your workflow for your specific needs.</p> <p>When you use the
941      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
942      * following triggers, but it does not provide the ClientMetadata value as
943      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
944      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
945      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
946      * </li> </ul> <p>For more information, see <a
947      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
948      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
949      * Guide</i>.</p>  <p>Take the following limitations into consideration when
950      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
951      * store the ClientMetadata value. This data is available only to Lambda triggers
952      * that are assigned to a user pool to support custom workflows. If your user pool
953      * configuration does not include triggers, the ClientMetadata parameter serves no
954      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
955      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
956      * value, so don't use it to provide sensitive information.</p> </li> </ul>
957      */
AddClientMetadata(Aws::String && key,const char * value)958     inline AdminInitiateAuthRequest& AddClientMetadata(Aws::String&& key, const char* value) { m_clientMetadataHasBeenSet = true; m_clientMetadata.emplace(std::move(key), value); return *this; }
959 
960     /**
961      * <p>A map of custom key-value pairs that you can provide as input for certain
962      * custom workflows that this action triggers.</p> <p>You create custom workflows
963      * by assigning Lambda functions to user pool triggers. When you use the
964      * AdminInitiateAuth API action, Amazon Cognito invokes the Lambda functions that
965      * are specified for various triggers. The ClientMetadata value is passed as input
966      * to the functions for only the following triggers:</p> <ul> <li> <p>Pre
967      * signup</p> </li> <li> <p>Pre authentication</p> </li> <li> <p>User migration</p>
968      * </li> </ul> <p>When Amazon Cognito invokes the functions for these triggers, it
969      * passes a JSON payload, which the function receives as input. This payload
970      * contains a <code>validationData</code> attribute, which provides the data that
971      * you assigned to the ClientMetadata parameter in your AdminInitiateAuth request.
972      * In your function code in Lambda, you can process the <code>validationData</code>
973      * value to enhance your workflow for your specific needs.</p> <p>When you use the
974      * AdminInitiateAuth API action, Amazon Cognito also invokes the functions for the
975      * following triggers, but it does not provide the ClientMetadata value as
976      * input:</p> <ul> <li> <p>Post authentication</p> </li> <li> <p>Custom message</p>
977      * </li> <li> <p>Pre token generation</p> </li> <li> <p>Create auth challenge</p>
978      * </li> <li> <p>Define auth challenge</p> </li> <li> <p>Verify auth challenge</p>
979      * </li> </ul> <p>For more information, see <a
980      * href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html">Customizing
981      * User Pool Workflows with Lambda Triggers</a> in the <i>Amazon Cognito Developer
982      * Guide</i>.</p>  <p>Take the following limitations into consideration when
983      * you use the ClientMetadata parameter:</p> <ul> <li> <p>Amazon Cognito does not
984      * store the ClientMetadata value. This data is available only to Lambda triggers
985      * that are assigned to a user pool to support custom workflows. If your user pool
986      * configuration does not include triggers, the ClientMetadata parameter serves no
987      * purpose.</p> </li> <li> <p>Amazon Cognito does not validate the ClientMetadata
988      * value.</p> </li> <li> <p>Amazon Cognito does not encrypt the the ClientMetadata
989      * value, so don't use it to provide sensitive information.</p> </li> </ul>
990      */
AddClientMetadata(const char * key,const char * value)991     inline AdminInitiateAuthRequest& AddClientMetadata(const char* key, const char* value) { m_clientMetadataHasBeenSet = true; m_clientMetadata.emplace(key, value); return *this; }
992 
993 
994     /**
995      * <p>The analytics metadata for collecting Amazon Pinpoint metrics for
996      * <code>AdminInitiateAuth</code> calls.</p>
997      */
GetAnalyticsMetadata()998     inline const AnalyticsMetadataType& GetAnalyticsMetadata() const{ return m_analyticsMetadata; }
999 
1000     /**
1001      * <p>The analytics metadata for collecting Amazon Pinpoint metrics for
1002      * <code>AdminInitiateAuth</code> calls.</p>
1003      */
AnalyticsMetadataHasBeenSet()1004     inline bool AnalyticsMetadataHasBeenSet() const { return m_analyticsMetadataHasBeenSet; }
1005 
1006     /**
1007      * <p>The analytics metadata for collecting Amazon Pinpoint metrics for
1008      * <code>AdminInitiateAuth</code> calls.</p>
1009      */
SetAnalyticsMetadata(const AnalyticsMetadataType & value)1010     inline void SetAnalyticsMetadata(const AnalyticsMetadataType& value) { m_analyticsMetadataHasBeenSet = true; m_analyticsMetadata = value; }
1011 
1012     /**
1013      * <p>The analytics metadata for collecting Amazon Pinpoint metrics for
1014      * <code>AdminInitiateAuth</code> calls.</p>
1015      */
SetAnalyticsMetadata(AnalyticsMetadataType && value)1016     inline void SetAnalyticsMetadata(AnalyticsMetadataType&& value) { m_analyticsMetadataHasBeenSet = true; m_analyticsMetadata = std::move(value); }
1017 
1018     /**
1019      * <p>The analytics metadata for collecting Amazon Pinpoint metrics for
1020      * <code>AdminInitiateAuth</code> calls.</p>
1021      */
WithAnalyticsMetadata(const AnalyticsMetadataType & value)1022     inline AdminInitiateAuthRequest& WithAnalyticsMetadata(const AnalyticsMetadataType& value) { SetAnalyticsMetadata(value); return *this;}
1023 
1024     /**
1025      * <p>The analytics metadata for collecting Amazon Pinpoint metrics for
1026      * <code>AdminInitiateAuth</code> calls.</p>
1027      */
WithAnalyticsMetadata(AnalyticsMetadataType && value)1028     inline AdminInitiateAuthRequest& WithAnalyticsMetadata(AnalyticsMetadataType&& value) { SetAnalyticsMetadata(std::move(value)); return *this;}
1029 
1030 
1031     /**
1032      * <p>Contextual data such as the user's device fingerprint, IP address, or
1033      * location used for evaluating the risk of an unexpected event by Amazon Cognito
1034      * advanced security.</p>
1035      */
GetContextData()1036     inline const ContextDataType& GetContextData() const{ return m_contextData; }
1037 
1038     /**
1039      * <p>Contextual data such as the user's device fingerprint, IP address, or
1040      * location used for evaluating the risk of an unexpected event by Amazon Cognito
1041      * advanced security.</p>
1042      */
ContextDataHasBeenSet()1043     inline bool ContextDataHasBeenSet() const { return m_contextDataHasBeenSet; }
1044 
1045     /**
1046      * <p>Contextual data such as the user's device fingerprint, IP address, or
1047      * location used for evaluating the risk of an unexpected event by Amazon Cognito
1048      * advanced security.</p>
1049      */
SetContextData(const ContextDataType & value)1050     inline void SetContextData(const ContextDataType& value) { m_contextDataHasBeenSet = true; m_contextData = value; }
1051 
1052     /**
1053      * <p>Contextual data such as the user's device fingerprint, IP address, or
1054      * location used for evaluating the risk of an unexpected event by Amazon Cognito
1055      * advanced security.</p>
1056      */
SetContextData(ContextDataType && value)1057     inline void SetContextData(ContextDataType&& value) { m_contextDataHasBeenSet = true; m_contextData = std::move(value); }
1058 
1059     /**
1060      * <p>Contextual data such as the user's device fingerprint, IP address, or
1061      * location used for evaluating the risk of an unexpected event by Amazon Cognito
1062      * advanced security.</p>
1063      */
WithContextData(const ContextDataType & value)1064     inline AdminInitiateAuthRequest& WithContextData(const ContextDataType& value) { SetContextData(value); return *this;}
1065 
1066     /**
1067      * <p>Contextual data such as the user's device fingerprint, IP address, or
1068      * location used for evaluating the risk of an unexpected event by Amazon Cognito
1069      * advanced security.</p>
1070      */
WithContextData(ContextDataType && value)1071     inline AdminInitiateAuthRequest& WithContextData(ContextDataType&& value) { SetContextData(std::move(value)); return *this;}
1072 
1073   private:
1074 
1075     Aws::String m_userPoolId;
1076     bool m_userPoolIdHasBeenSet;
1077 
1078     Aws::String m_clientId;
1079     bool m_clientIdHasBeenSet;
1080 
1081     AuthFlowType m_authFlow;
1082     bool m_authFlowHasBeenSet;
1083 
1084     Aws::Map<Aws::String, Aws::String> m_authParameters;
1085     bool m_authParametersHasBeenSet;
1086 
1087     Aws::Map<Aws::String, Aws::String> m_clientMetadata;
1088     bool m_clientMetadataHasBeenSet;
1089 
1090     AnalyticsMetadataType m_analyticsMetadata;
1091     bool m_analyticsMetadataHasBeenSet;
1092 
1093     ContextDataType m_contextData;
1094     bool m_contextDataHasBeenSet;
1095   };
1096 
1097 } // namespace Model
1098 } // namespace CognitoIdentityProvider
1099 } // namespace Aws
1100