/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace CognitoIdentityProvider { namespace Model { /** */ class AdminLinkProviderForUserRequest : public CognitoIdentityProviderRequest { public: AWS_COGNITOIDENTITYPROVIDER_API AdminLinkProviderForUserRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "AdminLinkProviderForUser"; } AWS_COGNITOIDENTITYPROVIDER_API Aws::String SerializePayload() const override; AWS_COGNITOIDENTITYPROVIDER_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The user pool ID for the user pool.

*/ inline const Aws::String& GetUserPoolId() const{ return m_userPoolId; } /** *

The user pool ID for the user pool.

*/ inline bool UserPoolIdHasBeenSet() const { return m_userPoolIdHasBeenSet; } /** *

The user pool ID for the user pool.

*/ inline void SetUserPoolId(const Aws::String& value) { m_userPoolIdHasBeenSet = true; m_userPoolId = value; } /** *

The user pool ID for the user pool.

*/ inline void SetUserPoolId(Aws::String&& value) { m_userPoolIdHasBeenSet = true; m_userPoolId = std::move(value); } /** *

The user pool ID for the user pool.

*/ inline void SetUserPoolId(const char* value) { m_userPoolIdHasBeenSet = true; m_userPoolId.assign(value); } /** *

The user pool ID for the user pool.

*/ inline AdminLinkProviderForUserRequest& WithUserPoolId(const Aws::String& value) { SetUserPoolId(value); return *this;} /** *

The user pool ID for the user pool.

*/ inline AdminLinkProviderForUserRequest& WithUserPoolId(Aws::String&& value) { SetUserPoolId(std::move(value)); return *this;} /** *

The user pool ID for the user pool.

*/ inline AdminLinkProviderForUserRequest& WithUserPoolId(const char* value) { SetUserPoolId(value); return *this;} /** *

The existing user in the user pool that you want to assign to the external * IdP user account. This user can be a native (Username + Password) Amazon Cognito * user pools user or a federated user (for example, a SAML or Facebook user). If * the user doesn't exist, Amazon Cognito generates an exception. Amazon Cognito * returns this user when the new user (with the linked IdP attribute) signs * in.

For a native username + password user, the * ProviderAttributeValue for the DestinationUser should * be the username in the user pool. For a federated user, it should be the * provider-specific user_id.

The * ProviderAttributeName of the DestinationUser is * ignored.

The ProviderName should be set to * Cognito for users in Cognito user pools.

All * attributes in the DestinationUser profile must be mutable. If you have assigned * the user any immutable custom attributes, the operation won't succeed.

* */ inline const ProviderUserIdentifierType& GetDestinationUser() const{ return m_destinationUser; } /** *

The existing user in the user pool that you want to assign to the external * IdP user account. This user can be a native (Username + Password) Amazon Cognito * user pools user or a federated user (for example, a SAML or Facebook user). If * the user doesn't exist, Amazon Cognito generates an exception. Amazon Cognito * returns this user when the new user (with the linked IdP attribute) signs * in.

For a native username + password user, the * ProviderAttributeValue for the DestinationUser should * be the username in the user pool. For a federated user, it should be the * provider-specific user_id.

The * ProviderAttributeName of the DestinationUser is * ignored.

The ProviderName should be set to * Cognito for users in Cognito user pools.

All * attributes in the DestinationUser profile must be mutable. If you have assigned * the user any immutable custom attributes, the operation won't succeed.

* */ inline bool DestinationUserHasBeenSet() const { return m_destinationUserHasBeenSet; } /** *

The existing user in the user pool that you want to assign to the external * IdP user account. This user can be a native (Username + Password) Amazon Cognito * user pools user or a federated user (for example, a SAML or Facebook user). If * the user doesn't exist, Amazon Cognito generates an exception. Amazon Cognito * returns this user when the new user (with the linked IdP attribute) signs * in.

For a native username + password user, the * ProviderAttributeValue for the DestinationUser should * be the username in the user pool. For a federated user, it should be the * provider-specific user_id.

The * ProviderAttributeName of the DestinationUser is * ignored.

The ProviderName should be set to * Cognito for users in Cognito user pools.

All * attributes in the DestinationUser profile must be mutable. If you have assigned * the user any immutable custom attributes, the operation won't succeed.

* */ inline void SetDestinationUser(const ProviderUserIdentifierType& value) { m_destinationUserHasBeenSet = true; m_destinationUser = value; } /** *

The existing user in the user pool that you want to assign to the external * IdP user account. This user can be a native (Username + Password) Amazon Cognito * user pools user or a federated user (for example, a SAML or Facebook user). If * the user doesn't exist, Amazon Cognito generates an exception. Amazon Cognito * returns this user when the new user (with the linked IdP attribute) signs * in.

For a native username + password user, the * ProviderAttributeValue for the DestinationUser should * be the username in the user pool. For a federated user, it should be the * provider-specific user_id.

The * ProviderAttributeName of the DestinationUser is * ignored.

The ProviderName should be set to * Cognito for users in Cognito user pools.

All * attributes in the DestinationUser profile must be mutable. If you have assigned * the user any immutable custom attributes, the operation won't succeed.

* */ inline void SetDestinationUser(ProviderUserIdentifierType&& value) { m_destinationUserHasBeenSet = true; m_destinationUser = std::move(value); } /** *

The existing user in the user pool that you want to assign to the external * IdP user account. This user can be a native (Username + Password) Amazon Cognito * user pools user or a federated user (for example, a SAML or Facebook user). If * the user doesn't exist, Amazon Cognito generates an exception. Amazon Cognito * returns this user when the new user (with the linked IdP attribute) signs * in.

For a native username + password user, the * ProviderAttributeValue for the DestinationUser should * be the username in the user pool. For a federated user, it should be the * provider-specific user_id.

The * ProviderAttributeName of the DestinationUser is * ignored.

The ProviderName should be set to * Cognito for users in Cognito user pools.

All * attributes in the DestinationUser profile must be mutable. If you have assigned * the user any immutable custom attributes, the operation won't succeed.

* */ inline AdminLinkProviderForUserRequest& WithDestinationUser(const ProviderUserIdentifierType& value) { SetDestinationUser(value); return *this;} /** *

The existing user in the user pool that you want to assign to the external * IdP user account. This user can be a native (Username + Password) Amazon Cognito * user pools user or a federated user (for example, a SAML or Facebook user). If * the user doesn't exist, Amazon Cognito generates an exception. Amazon Cognito * returns this user when the new user (with the linked IdP attribute) signs * in.

For a native username + password user, the * ProviderAttributeValue for the DestinationUser should * be the username in the user pool. For a federated user, it should be the * provider-specific user_id.

The * ProviderAttributeName of the DestinationUser is * ignored.

The ProviderName should be set to * Cognito for users in Cognito user pools.

All * attributes in the DestinationUser profile must be mutable. If you have assigned * the user any immutable custom attributes, the operation won't succeed.

* */ inline AdminLinkProviderForUserRequest& WithDestinationUser(ProviderUserIdentifierType&& value) { SetDestinationUser(std::move(value)); return *this;} /** *

An external IdP account for a user who doesn't exist yet in the user pool. * This user must be a federated user (for example, a SAML or Facebook user), not * another native user.

If the SourceUser is using a federated * social IdP, such as Facebook, Google, or Login with Amazon, you must set the * ProviderAttributeName to Cognito_Subject. For social * IdPs, the ProviderName will be Facebook, * Google, or LoginWithAmazon, and Amazon Cognito will * automatically parse the Facebook, Google, and Login with Amazon tokens for * id, sub, and user_id, respectively. The * ProviderAttributeValue for the user must be the same value as the * id, sub, or user_id value found in the * social IdP token.

For SAML, the ProviderAttributeName * can be any value that matches a claim in the SAML assertion. If you want to link * SAML users based on the subject of the SAML assertion, you should map the * subject to a claim through the SAML IdP and submit that claim name as the * ProviderAttributeName. If you set * ProviderAttributeName to Cognito_Subject, Amazon * Cognito will automatically parse the default unique identifier found in the * subject from the SAML token.

*/ inline const ProviderUserIdentifierType& GetSourceUser() const{ return m_sourceUser; } /** *

An external IdP account for a user who doesn't exist yet in the user pool. * This user must be a federated user (for example, a SAML or Facebook user), not * another native user.

If the SourceUser is using a federated * social IdP, such as Facebook, Google, or Login with Amazon, you must set the * ProviderAttributeName to Cognito_Subject. For social * IdPs, the ProviderName will be Facebook, * Google, or LoginWithAmazon, and Amazon Cognito will * automatically parse the Facebook, Google, and Login with Amazon tokens for * id, sub, and user_id, respectively. The * ProviderAttributeValue for the user must be the same value as the * id, sub, or user_id value found in the * social IdP token.

For SAML, the ProviderAttributeName * can be any value that matches a claim in the SAML assertion. If you want to link * SAML users based on the subject of the SAML assertion, you should map the * subject to a claim through the SAML IdP and submit that claim name as the * ProviderAttributeName. If you set * ProviderAttributeName to Cognito_Subject, Amazon * Cognito will automatically parse the default unique identifier found in the * subject from the SAML token.

*/ inline bool SourceUserHasBeenSet() const { return m_sourceUserHasBeenSet; } /** *

An external IdP account for a user who doesn't exist yet in the user pool. * This user must be a federated user (for example, a SAML or Facebook user), not * another native user.

If the SourceUser is using a federated * social IdP, such as Facebook, Google, or Login with Amazon, you must set the * ProviderAttributeName to Cognito_Subject. For social * IdPs, the ProviderName will be Facebook, * Google, or LoginWithAmazon, and Amazon Cognito will * automatically parse the Facebook, Google, and Login with Amazon tokens for * id, sub, and user_id, respectively. The * ProviderAttributeValue for the user must be the same value as the * id, sub, or user_id value found in the * social IdP token.

For SAML, the ProviderAttributeName * can be any value that matches a claim in the SAML assertion. If you want to link * SAML users based on the subject of the SAML assertion, you should map the * subject to a claim through the SAML IdP and submit that claim name as the * ProviderAttributeName. If you set * ProviderAttributeName to Cognito_Subject, Amazon * Cognito will automatically parse the default unique identifier found in the * subject from the SAML token.

*/ inline void SetSourceUser(const ProviderUserIdentifierType& value) { m_sourceUserHasBeenSet = true; m_sourceUser = value; } /** *

An external IdP account for a user who doesn't exist yet in the user pool. * This user must be a federated user (for example, a SAML or Facebook user), not * another native user.

If the SourceUser is using a federated * social IdP, such as Facebook, Google, or Login with Amazon, you must set the * ProviderAttributeName to Cognito_Subject. For social * IdPs, the ProviderName will be Facebook, * Google, or LoginWithAmazon, and Amazon Cognito will * automatically parse the Facebook, Google, and Login with Amazon tokens for * id, sub, and user_id, respectively. The * ProviderAttributeValue for the user must be the same value as the * id, sub, or user_id value found in the * social IdP token.

For SAML, the ProviderAttributeName * can be any value that matches a claim in the SAML assertion. If you want to link * SAML users based on the subject of the SAML assertion, you should map the * subject to a claim through the SAML IdP and submit that claim name as the * ProviderAttributeName. If you set * ProviderAttributeName to Cognito_Subject, Amazon * Cognito will automatically parse the default unique identifier found in the * subject from the SAML token.

*/ inline void SetSourceUser(ProviderUserIdentifierType&& value) { m_sourceUserHasBeenSet = true; m_sourceUser = std::move(value); } /** *

An external IdP account for a user who doesn't exist yet in the user pool. * This user must be a federated user (for example, a SAML or Facebook user), not * another native user.

If the SourceUser is using a federated * social IdP, such as Facebook, Google, or Login with Amazon, you must set the * ProviderAttributeName to Cognito_Subject. For social * IdPs, the ProviderName will be Facebook, * Google, or LoginWithAmazon, and Amazon Cognito will * automatically parse the Facebook, Google, and Login with Amazon tokens for * id, sub, and user_id, respectively. The * ProviderAttributeValue for the user must be the same value as the * id, sub, or user_id value found in the * social IdP token.

For SAML, the ProviderAttributeName * can be any value that matches a claim in the SAML assertion. If you want to link * SAML users based on the subject of the SAML assertion, you should map the * subject to a claim through the SAML IdP and submit that claim name as the * ProviderAttributeName. If you set * ProviderAttributeName to Cognito_Subject, Amazon * Cognito will automatically parse the default unique identifier found in the * subject from the SAML token.

*/ inline AdminLinkProviderForUserRequest& WithSourceUser(const ProviderUserIdentifierType& value) { SetSourceUser(value); return *this;} /** *

An external IdP account for a user who doesn't exist yet in the user pool. * This user must be a federated user (for example, a SAML or Facebook user), not * another native user.

If the SourceUser is using a federated * social IdP, such as Facebook, Google, or Login with Amazon, you must set the * ProviderAttributeName to Cognito_Subject. For social * IdPs, the ProviderName will be Facebook, * Google, or LoginWithAmazon, and Amazon Cognito will * automatically parse the Facebook, Google, and Login with Amazon tokens for * id, sub, and user_id, respectively. The * ProviderAttributeValue for the user must be the same value as the * id, sub, or user_id value found in the * social IdP token.

For SAML, the ProviderAttributeName * can be any value that matches a claim in the SAML assertion. If you want to link * SAML users based on the subject of the SAML assertion, you should map the * subject to a claim through the SAML IdP and submit that claim name as the * ProviderAttributeName. If you set * ProviderAttributeName to Cognito_Subject, Amazon * Cognito will automatically parse the default unique identifier found in the * subject from the SAML token.

*/ inline AdminLinkProviderForUserRequest& WithSourceUser(ProviderUserIdentifierType&& value) { SetSourceUser(std::move(value)); return *this;} private: Aws::String m_userPoolId; bool m_userPoolIdHasBeenSet = false; ProviderUserIdentifierType m_destinationUser; bool m_destinationUserHasBeenSet = false; ProviderUserIdentifierType m_sourceUser; bool m_sourceUserHasBeenSet = false; }; } // namespace Model } // namespace CognitoIdentityProvider } // namespace Aws