/* * Copyright 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. */ /* * Do not modify this file. This file is generated from the cognito-idp-2016-04-18.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.CognitoIdentityProvider.Model { /// /// Container for the parameters to the AdminLinkProviderForUser operation. /// Links an existing user account in a user pool (DestinationUser) to an /// identity from an external IdP (SourceUser) based on a specified attribute /// name and value from the external IdP. This allows you to create a link from the existing /// user account to an external federated user identity that has not yet been used to /// sign in. You can then use the federated user identity to sign in as the existing user /// account. /// /// /// /// For example, if there is an existing user with a username and password, this API /// links that user to a federated user identity. When the user signs in with a federated /// user identity, they sign in as the existing user account. /// /// /// /// The maximum number of federated identities linked to a user is five. /// /// /// /// Because this API allows a user with an external federated identity to sign in as an /// existing user in the user pool, it is critical that it only be used with external /// IdPs and provider attributes that have been trusted by the application owner. /// /// /// /// This action is administrative and requires developer credentials. /// /// public partial class AdminLinkProviderForUserRequest : AmazonCognitoIdentityProviderRequest { private ProviderUserIdentifierType _destinationUser; private ProviderUserIdentifierType _sourceUser; private string _userPoolId; /// /// Gets and sets the property 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. /// /// /// [AWSProperty(Required=true)] public ProviderUserIdentifierType DestinationUser { get { return this._destinationUser; } set { this._destinationUser = value; } } // Check to see if DestinationUser property is set internal bool IsSetDestinationUser() { return this._destinationUser != null; } /// /// Gets and sets the property 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. /// /// [AWSProperty(Required=true)] public ProviderUserIdentifierType SourceUser { get { return this._sourceUser; } set { this._sourceUser = value; } } // Check to see if SourceUser property is set internal bool IsSetSourceUser() { return this._sourceUser != null; } /// /// Gets and sets the property UserPoolId. /// /// The user pool ID for the user pool. /// /// [AWSProperty(Required=true)] public string UserPoolId { get { return this._userPoolId; } set { this._userPoolId = value; } } // Check to see if UserPoolId property is set internal bool IsSetUserPoolId() { return this._userPoolId != null; } } }