/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.cognitoidp.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AdminLinkProviderForUserRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* The user pool ID for the user pool. *

*/ private String userPoolId; /** *

* 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. *

*
*/ private ProviderUserIdentifierType destinationUser; /** *

* 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. *

*/ private ProviderUserIdentifierType sourceUser; /** *

* The user pool ID for the user pool. *

* * @param userPoolId * The user pool ID for the user pool. */ public void setUserPoolId(String userPoolId) { this.userPoolId = userPoolId; } /** *

* The user pool ID for the user pool. *

* * @return The user pool ID for the user pool. */ public String getUserPoolId() { return this.userPoolId; } /** *

* The user pool ID for the user pool. *

* * @param userPoolId * The user pool ID for the user pool. * @return Returns a reference to this object so that method calls can be chained together. */ public AdminLinkProviderForUserRequest withUserPoolId(String userPoolId) { setUserPoolId(userPoolId); 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. *

*
* * @param 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. *

*/ public void setDestinationUser(ProviderUserIdentifierType destinationUser) { this.destinationUser = 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. *

*
* * @return 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. *

*/ public ProviderUserIdentifierType getDestinationUser() { return this.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. *

*
* * @param 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. *

* @return Returns a reference to this object so that method calls can be chained together. */ public AdminLinkProviderForUserRequest withDestinationUser(ProviderUserIdentifierType destinationUser) { setDestinationUser(destinationUser); 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. *

* * @param 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. */ public void setSourceUser(ProviderUserIdentifierType sourceUser) { this.sourceUser = 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. *

* * @return 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. */ public ProviderUserIdentifierType getSourceUser() { return this.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. *

* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public AdminLinkProviderForUserRequest withSourceUser(ProviderUserIdentifierType sourceUser) { setSourceUser(sourceUser); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getUserPoolId() != null) sb.append("UserPoolId: ").append(getUserPoolId()).append(","); if (getDestinationUser() != null) sb.append("DestinationUser: ").append(getDestinationUser()).append(","); if (getSourceUser() != null) sb.append("SourceUser: ").append(getSourceUser()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof AdminLinkProviderForUserRequest == false) return false; AdminLinkProviderForUserRequest other = (AdminLinkProviderForUserRequest) obj; if (other.getUserPoolId() == null ^ this.getUserPoolId() == null) return false; if (other.getUserPoolId() != null && other.getUserPoolId().equals(this.getUserPoolId()) == false) return false; if (other.getDestinationUser() == null ^ this.getDestinationUser() == null) return false; if (other.getDestinationUser() != null && other.getDestinationUser().equals(this.getDestinationUser()) == false) return false; if (other.getSourceUser() == null ^ this.getSourceUser() == null) return false; if (other.getSourceUser() != null && other.getSourceUser().equals(this.getSourceUser()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getUserPoolId() == null) ? 0 : getUserPoolId().hashCode()); hashCode = prime * hashCode + ((getDestinationUser() == null) ? 0 : getDestinationUser().hashCode()); hashCode = prime * hashCode + ((getSourceUser() == null) ? 0 : getSourceUser().hashCode()); return hashCode; } @Override public AdminLinkProviderForUserRequest clone() { return (AdminLinkProviderForUserRequest) super.clone(); } }