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-identity/CognitoIdentity_EXPORTS.h> 8 #include <aws/cognito-identity/CognitoIdentityRequest.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <aws/core/utils/memory/stl/AWSMap.h> 11 #include <utility> 12 13 namespace Aws 14 { 15 namespace CognitoIdentity 16 { 17 namespace Model 18 { 19 20 /** 21 * <p>Input to the <code>GetOpenIdTokenForDeveloperIdentity</code> 22 * action.</p><p><h3>See Also:</h3> <a 23 * href="http://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/GetOpenIdTokenForDeveloperIdentityInput">AWS 24 * API Reference</a></p> 25 */ 26 class AWS_COGNITOIDENTITY_API GetOpenIdTokenForDeveloperIdentityRequest : public CognitoIdentityRequest 27 { 28 public: 29 GetOpenIdTokenForDeveloperIdentityRequest(); 30 31 // Service request name is the Operation name which will send this request out, 32 // each operation should has unique request name, so that we can get operation's name from this request. 33 // Note: this is not true for response, multiple operations may have the same response name, 34 // so we can not get operation's name from response. GetServiceRequestName()35 inline virtual const char* GetServiceRequestName() const override { return "GetOpenIdTokenForDeveloperIdentity"; } 36 37 Aws::String SerializePayload() const override; 38 39 Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; 40 41 42 /** 43 * <p>An identity pool ID in the format REGION:GUID.</p> 44 */ GetIdentityPoolId()45 inline const Aws::String& GetIdentityPoolId() const{ return m_identityPoolId; } 46 47 /** 48 * <p>An identity pool ID in the format REGION:GUID.</p> 49 */ IdentityPoolIdHasBeenSet()50 inline bool IdentityPoolIdHasBeenSet() const { return m_identityPoolIdHasBeenSet; } 51 52 /** 53 * <p>An identity pool ID in the format REGION:GUID.</p> 54 */ SetIdentityPoolId(const Aws::String & value)55 inline void SetIdentityPoolId(const Aws::String& value) { m_identityPoolIdHasBeenSet = true; m_identityPoolId = value; } 56 57 /** 58 * <p>An identity pool ID in the format REGION:GUID.</p> 59 */ SetIdentityPoolId(Aws::String && value)60 inline void SetIdentityPoolId(Aws::String&& value) { m_identityPoolIdHasBeenSet = true; m_identityPoolId = std::move(value); } 61 62 /** 63 * <p>An identity pool ID in the format REGION:GUID.</p> 64 */ SetIdentityPoolId(const char * value)65 inline void SetIdentityPoolId(const char* value) { m_identityPoolIdHasBeenSet = true; m_identityPoolId.assign(value); } 66 67 /** 68 * <p>An identity pool ID in the format REGION:GUID.</p> 69 */ WithIdentityPoolId(const Aws::String & value)70 inline GetOpenIdTokenForDeveloperIdentityRequest& WithIdentityPoolId(const Aws::String& value) { SetIdentityPoolId(value); return *this;} 71 72 /** 73 * <p>An identity pool ID in the format REGION:GUID.</p> 74 */ WithIdentityPoolId(Aws::String && value)75 inline GetOpenIdTokenForDeveloperIdentityRequest& WithIdentityPoolId(Aws::String&& value) { SetIdentityPoolId(std::move(value)); return *this;} 76 77 /** 78 * <p>An identity pool ID in the format REGION:GUID.</p> 79 */ WithIdentityPoolId(const char * value)80 inline GetOpenIdTokenForDeveloperIdentityRequest& WithIdentityPoolId(const char* value) { SetIdentityPoolId(value); return *this;} 81 82 83 /** 84 * <p>A unique identifier in the format REGION:GUID.</p> 85 */ GetIdentityId()86 inline const Aws::String& GetIdentityId() const{ return m_identityId; } 87 88 /** 89 * <p>A unique identifier in the format REGION:GUID.</p> 90 */ IdentityIdHasBeenSet()91 inline bool IdentityIdHasBeenSet() const { return m_identityIdHasBeenSet; } 92 93 /** 94 * <p>A unique identifier in the format REGION:GUID.</p> 95 */ SetIdentityId(const Aws::String & value)96 inline void SetIdentityId(const Aws::String& value) { m_identityIdHasBeenSet = true; m_identityId = value; } 97 98 /** 99 * <p>A unique identifier in the format REGION:GUID.</p> 100 */ SetIdentityId(Aws::String && value)101 inline void SetIdentityId(Aws::String&& value) { m_identityIdHasBeenSet = true; m_identityId = std::move(value); } 102 103 /** 104 * <p>A unique identifier in the format REGION:GUID.</p> 105 */ SetIdentityId(const char * value)106 inline void SetIdentityId(const char* value) { m_identityIdHasBeenSet = true; m_identityId.assign(value); } 107 108 /** 109 * <p>A unique identifier in the format REGION:GUID.</p> 110 */ WithIdentityId(const Aws::String & value)111 inline GetOpenIdTokenForDeveloperIdentityRequest& WithIdentityId(const Aws::String& value) { SetIdentityId(value); return *this;} 112 113 /** 114 * <p>A unique identifier in the format REGION:GUID.</p> 115 */ WithIdentityId(Aws::String && value)116 inline GetOpenIdTokenForDeveloperIdentityRequest& WithIdentityId(Aws::String&& value) { SetIdentityId(std::move(value)); return *this;} 117 118 /** 119 * <p>A unique identifier in the format REGION:GUID.</p> 120 */ WithIdentityId(const char * value)121 inline GetOpenIdTokenForDeveloperIdentityRequest& WithIdentityId(const char* value) { SetIdentityId(value); return *this;} 122 123 124 /** 125 * <p>A set of optional name-value pairs that map provider names to provider 126 * tokens. Each name-value pair represents a user from a public provider or 127 * developer provider. If the user is from a developer provider, the name-value 128 * pair will follow the syntax <code>"developer_provider_name": 129 * "developer_user_identifier"</code>. The developer provider is the "domain" by 130 * which Cognito will refer to your users; you provided this domain while 131 * creating/updating the identity pool. The developer user identifier is an 132 * identifier from your backend that uniquely identifies a user. When you create an 133 * identity pool, you can specify the supported logins.</p> 134 */ GetLogins()135 inline const Aws::Map<Aws::String, Aws::String>& GetLogins() const{ return m_logins; } 136 137 /** 138 * <p>A set of optional name-value pairs that map provider names to provider 139 * tokens. Each name-value pair represents a user from a public provider or 140 * developer provider. If the user is from a developer provider, the name-value 141 * pair will follow the syntax <code>"developer_provider_name": 142 * "developer_user_identifier"</code>. The developer provider is the "domain" by 143 * which Cognito will refer to your users; you provided this domain while 144 * creating/updating the identity pool. The developer user identifier is an 145 * identifier from your backend that uniquely identifies a user. When you create an 146 * identity pool, you can specify the supported logins.</p> 147 */ LoginsHasBeenSet()148 inline bool LoginsHasBeenSet() const { return m_loginsHasBeenSet; } 149 150 /** 151 * <p>A set of optional name-value pairs that map provider names to provider 152 * tokens. Each name-value pair represents a user from a public provider or 153 * developer provider. If the user is from a developer provider, the name-value 154 * pair will follow the syntax <code>"developer_provider_name": 155 * "developer_user_identifier"</code>. The developer provider is the "domain" by 156 * which Cognito will refer to your users; you provided this domain while 157 * creating/updating the identity pool. The developer user identifier is an 158 * identifier from your backend that uniquely identifies a user. When you create an 159 * identity pool, you can specify the supported logins.</p> 160 */ SetLogins(const Aws::Map<Aws::String,Aws::String> & value)161 inline void SetLogins(const Aws::Map<Aws::String, Aws::String>& value) { m_loginsHasBeenSet = true; m_logins = value; } 162 163 /** 164 * <p>A set of optional name-value pairs that map provider names to provider 165 * tokens. Each name-value pair represents a user from a public provider or 166 * developer provider. If the user is from a developer provider, the name-value 167 * pair will follow the syntax <code>"developer_provider_name": 168 * "developer_user_identifier"</code>. The developer provider is the "domain" by 169 * which Cognito will refer to your users; you provided this domain while 170 * creating/updating the identity pool. The developer user identifier is an 171 * identifier from your backend that uniquely identifies a user. When you create an 172 * identity pool, you can specify the supported logins.</p> 173 */ SetLogins(Aws::Map<Aws::String,Aws::String> && value)174 inline void SetLogins(Aws::Map<Aws::String, Aws::String>&& value) { m_loginsHasBeenSet = true; m_logins = std::move(value); } 175 176 /** 177 * <p>A set of optional name-value pairs that map provider names to provider 178 * tokens. Each name-value pair represents a user from a public provider or 179 * developer provider. If the user is from a developer provider, the name-value 180 * pair will follow the syntax <code>"developer_provider_name": 181 * "developer_user_identifier"</code>. The developer provider is the "domain" by 182 * which Cognito will refer to your users; you provided this domain while 183 * creating/updating the identity pool. The developer user identifier is an 184 * identifier from your backend that uniquely identifies a user. When you create an 185 * identity pool, you can specify the supported logins.</p> 186 */ WithLogins(const Aws::Map<Aws::String,Aws::String> & value)187 inline GetOpenIdTokenForDeveloperIdentityRequest& WithLogins(const Aws::Map<Aws::String, Aws::String>& value) { SetLogins(value); return *this;} 188 189 /** 190 * <p>A set of optional name-value pairs that map provider names to provider 191 * tokens. Each name-value pair represents a user from a public provider or 192 * developer provider. If the user is from a developer provider, the name-value 193 * pair will follow the syntax <code>"developer_provider_name": 194 * "developer_user_identifier"</code>. The developer provider is the "domain" by 195 * which Cognito will refer to your users; you provided this domain while 196 * creating/updating the identity pool. The developer user identifier is an 197 * identifier from your backend that uniquely identifies a user. When you create an 198 * identity pool, you can specify the supported logins.</p> 199 */ WithLogins(Aws::Map<Aws::String,Aws::String> && value)200 inline GetOpenIdTokenForDeveloperIdentityRequest& WithLogins(Aws::Map<Aws::String, Aws::String>&& value) { SetLogins(std::move(value)); return *this;} 201 202 /** 203 * <p>A set of optional name-value pairs that map provider names to provider 204 * tokens. Each name-value pair represents a user from a public provider or 205 * developer provider. If the user is from a developer provider, the name-value 206 * pair will follow the syntax <code>"developer_provider_name": 207 * "developer_user_identifier"</code>. The developer provider is the "domain" by 208 * which Cognito will refer to your users; you provided this domain while 209 * creating/updating the identity pool. The developer user identifier is an 210 * identifier from your backend that uniquely identifies a user. When you create an 211 * identity pool, you can specify the supported logins.</p> 212 */ AddLogins(const Aws::String & key,const Aws::String & value)213 inline GetOpenIdTokenForDeveloperIdentityRequest& AddLogins(const Aws::String& key, const Aws::String& value) { m_loginsHasBeenSet = true; m_logins.emplace(key, value); return *this; } 214 215 /** 216 * <p>A set of optional name-value pairs that map provider names to provider 217 * tokens. Each name-value pair represents a user from a public provider or 218 * developer provider. If the user is from a developer provider, the name-value 219 * pair will follow the syntax <code>"developer_provider_name": 220 * "developer_user_identifier"</code>. The developer provider is the "domain" by 221 * which Cognito will refer to your users; you provided this domain while 222 * creating/updating the identity pool. The developer user identifier is an 223 * identifier from your backend that uniquely identifies a user. When you create an 224 * identity pool, you can specify the supported logins.</p> 225 */ AddLogins(Aws::String && key,const Aws::String & value)226 inline GetOpenIdTokenForDeveloperIdentityRequest& AddLogins(Aws::String&& key, const Aws::String& value) { m_loginsHasBeenSet = true; m_logins.emplace(std::move(key), value); return *this; } 227 228 /** 229 * <p>A set of optional name-value pairs that map provider names to provider 230 * tokens. Each name-value pair represents a user from a public provider or 231 * developer provider. If the user is from a developer provider, the name-value 232 * pair will follow the syntax <code>"developer_provider_name": 233 * "developer_user_identifier"</code>. The developer provider is the "domain" by 234 * which Cognito will refer to your users; you provided this domain while 235 * creating/updating the identity pool. The developer user identifier is an 236 * identifier from your backend that uniquely identifies a user. When you create an 237 * identity pool, you can specify the supported logins.</p> 238 */ AddLogins(const Aws::String & key,Aws::String && value)239 inline GetOpenIdTokenForDeveloperIdentityRequest& AddLogins(const Aws::String& key, Aws::String&& value) { m_loginsHasBeenSet = true; m_logins.emplace(key, std::move(value)); return *this; } 240 241 /** 242 * <p>A set of optional name-value pairs that map provider names to provider 243 * tokens. Each name-value pair represents a user from a public provider or 244 * developer provider. If the user is from a developer provider, the name-value 245 * pair will follow the syntax <code>"developer_provider_name": 246 * "developer_user_identifier"</code>. The developer provider is the "domain" by 247 * which Cognito will refer to your users; you provided this domain while 248 * creating/updating the identity pool. The developer user identifier is an 249 * identifier from your backend that uniquely identifies a user. When you create an 250 * identity pool, you can specify the supported logins.</p> 251 */ AddLogins(Aws::String && key,Aws::String && value)252 inline GetOpenIdTokenForDeveloperIdentityRequest& AddLogins(Aws::String&& key, Aws::String&& value) { m_loginsHasBeenSet = true; m_logins.emplace(std::move(key), std::move(value)); return *this; } 253 254 /** 255 * <p>A set of optional name-value pairs that map provider names to provider 256 * tokens. Each name-value pair represents a user from a public provider or 257 * developer provider. If the user is from a developer provider, the name-value 258 * pair will follow the syntax <code>"developer_provider_name": 259 * "developer_user_identifier"</code>. The developer provider is the "domain" by 260 * which Cognito will refer to your users; you provided this domain while 261 * creating/updating the identity pool. The developer user identifier is an 262 * identifier from your backend that uniquely identifies a user. When you create an 263 * identity pool, you can specify the supported logins.</p> 264 */ AddLogins(const char * key,Aws::String && value)265 inline GetOpenIdTokenForDeveloperIdentityRequest& AddLogins(const char* key, Aws::String&& value) { m_loginsHasBeenSet = true; m_logins.emplace(key, std::move(value)); return *this; } 266 267 /** 268 * <p>A set of optional name-value pairs that map provider names to provider 269 * tokens. Each name-value pair represents a user from a public provider or 270 * developer provider. If the user is from a developer provider, the name-value 271 * pair will follow the syntax <code>"developer_provider_name": 272 * "developer_user_identifier"</code>. The developer provider is the "domain" by 273 * which Cognito will refer to your users; you provided this domain while 274 * creating/updating the identity pool. The developer user identifier is an 275 * identifier from your backend that uniquely identifies a user. When you create an 276 * identity pool, you can specify the supported logins.</p> 277 */ AddLogins(Aws::String && key,const char * value)278 inline GetOpenIdTokenForDeveloperIdentityRequest& AddLogins(Aws::String&& key, const char* value) { m_loginsHasBeenSet = true; m_logins.emplace(std::move(key), value); return *this; } 279 280 /** 281 * <p>A set of optional name-value pairs that map provider names to provider 282 * tokens. Each name-value pair represents a user from a public provider or 283 * developer provider. If the user is from a developer provider, the name-value 284 * pair will follow the syntax <code>"developer_provider_name": 285 * "developer_user_identifier"</code>. The developer provider is the "domain" by 286 * which Cognito will refer to your users; you provided this domain while 287 * creating/updating the identity pool. The developer user identifier is an 288 * identifier from your backend that uniquely identifies a user. When you create an 289 * identity pool, you can specify the supported logins.</p> 290 */ AddLogins(const char * key,const char * value)291 inline GetOpenIdTokenForDeveloperIdentityRequest& AddLogins(const char* key, const char* value) { m_loginsHasBeenSet = true; m_logins.emplace(key, value); return *this; } 292 293 294 /** 295 * <p>Use this operation to configure attribute mappings for custom providers. </p> 296 */ GetPrincipalTags()297 inline const Aws::Map<Aws::String, Aws::String>& GetPrincipalTags() const{ return m_principalTags; } 298 299 /** 300 * <p>Use this operation to configure attribute mappings for custom providers. </p> 301 */ PrincipalTagsHasBeenSet()302 inline bool PrincipalTagsHasBeenSet() const { return m_principalTagsHasBeenSet; } 303 304 /** 305 * <p>Use this operation to configure attribute mappings for custom providers. </p> 306 */ SetPrincipalTags(const Aws::Map<Aws::String,Aws::String> & value)307 inline void SetPrincipalTags(const Aws::Map<Aws::String, Aws::String>& value) { m_principalTagsHasBeenSet = true; m_principalTags = value; } 308 309 /** 310 * <p>Use this operation to configure attribute mappings for custom providers. </p> 311 */ SetPrincipalTags(Aws::Map<Aws::String,Aws::String> && value)312 inline void SetPrincipalTags(Aws::Map<Aws::String, Aws::String>&& value) { m_principalTagsHasBeenSet = true; m_principalTags = std::move(value); } 313 314 /** 315 * <p>Use this operation to configure attribute mappings for custom providers. </p> 316 */ WithPrincipalTags(const Aws::Map<Aws::String,Aws::String> & value)317 inline GetOpenIdTokenForDeveloperIdentityRequest& WithPrincipalTags(const Aws::Map<Aws::String, Aws::String>& value) { SetPrincipalTags(value); return *this;} 318 319 /** 320 * <p>Use this operation to configure attribute mappings for custom providers. </p> 321 */ WithPrincipalTags(Aws::Map<Aws::String,Aws::String> && value)322 inline GetOpenIdTokenForDeveloperIdentityRequest& WithPrincipalTags(Aws::Map<Aws::String, Aws::String>&& value) { SetPrincipalTags(std::move(value)); return *this;} 323 324 /** 325 * <p>Use this operation to configure attribute mappings for custom providers. </p> 326 */ AddPrincipalTags(const Aws::String & key,const Aws::String & value)327 inline GetOpenIdTokenForDeveloperIdentityRequest& AddPrincipalTags(const Aws::String& key, const Aws::String& value) { m_principalTagsHasBeenSet = true; m_principalTags.emplace(key, value); return *this; } 328 329 /** 330 * <p>Use this operation to configure attribute mappings for custom providers. </p> 331 */ AddPrincipalTags(Aws::String && key,const Aws::String & value)332 inline GetOpenIdTokenForDeveloperIdentityRequest& AddPrincipalTags(Aws::String&& key, const Aws::String& value) { m_principalTagsHasBeenSet = true; m_principalTags.emplace(std::move(key), value); return *this; } 333 334 /** 335 * <p>Use this operation to configure attribute mappings for custom providers. </p> 336 */ AddPrincipalTags(const Aws::String & key,Aws::String && value)337 inline GetOpenIdTokenForDeveloperIdentityRequest& AddPrincipalTags(const Aws::String& key, Aws::String&& value) { m_principalTagsHasBeenSet = true; m_principalTags.emplace(key, std::move(value)); return *this; } 338 339 /** 340 * <p>Use this operation to configure attribute mappings for custom providers. </p> 341 */ AddPrincipalTags(Aws::String && key,Aws::String && value)342 inline GetOpenIdTokenForDeveloperIdentityRequest& AddPrincipalTags(Aws::String&& key, Aws::String&& value) { m_principalTagsHasBeenSet = true; m_principalTags.emplace(std::move(key), std::move(value)); return *this; } 343 344 /** 345 * <p>Use this operation to configure attribute mappings for custom providers. </p> 346 */ AddPrincipalTags(const char * key,Aws::String && value)347 inline GetOpenIdTokenForDeveloperIdentityRequest& AddPrincipalTags(const char* key, Aws::String&& value) { m_principalTagsHasBeenSet = true; m_principalTags.emplace(key, std::move(value)); return *this; } 348 349 /** 350 * <p>Use this operation to configure attribute mappings for custom providers. </p> 351 */ AddPrincipalTags(Aws::String && key,const char * value)352 inline GetOpenIdTokenForDeveloperIdentityRequest& AddPrincipalTags(Aws::String&& key, const char* value) { m_principalTagsHasBeenSet = true; m_principalTags.emplace(std::move(key), value); return *this; } 353 354 /** 355 * <p>Use this operation to configure attribute mappings for custom providers. </p> 356 */ AddPrincipalTags(const char * key,const char * value)357 inline GetOpenIdTokenForDeveloperIdentityRequest& AddPrincipalTags(const char* key, const char* value) { m_principalTagsHasBeenSet = true; m_principalTags.emplace(key, value); return *this; } 358 359 360 /** 361 * <p>The expiration time of the token, in seconds. You can specify a custom 362 * expiration time for the token so that you can cache it. If you don't provide an 363 * expiration time, the token is valid for 15 minutes. You can exchange the token 364 * with Amazon STS for temporary AWS credentials, which are valid for a maximum of 365 * one hour. The maximum token duration you can set is 24 hours. You should take 366 * care in setting the expiration time for a token, as there are significant 367 * security implications: an attacker could use a leaked token to access your AWS 368 * resources for the token's duration.</p> <p>Please provide for a small 369 * grace period, usually no more than 5 minutes, to account for clock skew.</p> 370 * 371 */ GetTokenDuration()372 inline long long GetTokenDuration() const{ return m_tokenDuration; } 373 374 /** 375 * <p>The expiration time of the token, in seconds. You can specify a custom 376 * expiration time for the token so that you can cache it. If you don't provide an 377 * expiration time, the token is valid for 15 minutes. You can exchange the token 378 * with Amazon STS for temporary AWS credentials, which are valid for a maximum of 379 * one hour. The maximum token duration you can set is 24 hours. You should take 380 * care in setting the expiration time for a token, as there are significant 381 * security implications: an attacker could use a leaked token to access your AWS 382 * resources for the token's duration.</p> <p>Please provide for a small 383 * grace period, usually no more than 5 minutes, to account for clock skew.</p> 384 * 385 */ TokenDurationHasBeenSet()386 inline bool TokenDurationHasBeenSet() const { return m_tokenDurationHasBeenSet; } 387 388 /** 389 * <p>The expiration time of the token, in seconds. You can specify a custom 390 * expiration time for the token so that you can cache it. If you don't provide an 391 * expiration time, the token is valid for 15 minutes. You can exchange the token 392 * with Amazon STS for temporary AWS credentials, which are valid for a maximum of 393 * one hour. The maximum token duration you can set is 24 hours. You should take 394 * care in setting the expiration time for a token, as there are significant 395 * security implications: an attacker could use a leaked token to access your AWS 396 * resources for the token's duration.</p> <p>Please provide for a small 397 * grace period, usually no more than 5 minutes, to account for clock skew.</p> 398 * 399 */ SetTokenDuration(long long value)400 inline void SetTokenDuration(long long value) { m_tokenDurationHasBeenSet = true; m_tokenDuration = value; } 401 402 /** 403 * <p>The expiration time of the token, in seconds. You can specify a custom 404 * expiration time for the token so that you can cache it. If you don't provide an 405 * expiration time, the token is valid for 15 minutes. You can exchange the token 406 * with Amazon STS for temporary AWS credentials, which are valid for a maximum of 407 * one hour. The maximum token duration you can set is 24 hours. You should take 408 * care in setting the expiration time for a token, as there are significant 409 * security implications: an attacker could use a leaked token to access your AWS 410 * resources for the token's duration.</p> <p>Please provide for a small 411 * grace period, usually no more than 5 minutes, to account for clock skew.</p> 412 * 413 */ WithTokenDuration(long long value)414 inline GetOpenIdTokenForDeveloperIdentityRequest& WithTokenDuration(long long value) { SetTokenDuration(value); return *this;} 415 416 private: 417 418 Aws::String m_identityPoolId; 419 bool m_identityPoolIdHasBeenSet; 420 421 Aws::String m_identityId; 422 bool m_identityIdHasBeenSet; 423 424 Aws::Map<Aws::String, Aws::String> m_logins; 425 bool m_loginsHasBeenSet; 426 427 Aws::Map<Aws::String, Aws::String> m_principalTags; 428 bool m_principalTagsHasBeenSet; 429 430 long long m_tokenDuration; 431 bool m_tokenDurationHasBeenSet; 432 }; 433 434 } // namespace Model 435 } // namespace CognitoIdentity 436 } // namespace Aws 437