/*
 * Copyright 2010-2014 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-identity-2014-06-30.normal.json service model.
 */
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.CognitoIdentity.Model
{
    /// 
    /// Container for the parameters to the LookupDeveloperIdentity operation.
    /// Retrieves the IdentityID associated with a DeveloperUserIdentifier
    /// or the list of DeveloperUserIdentifier values associated with an IdentityId
    /// for an existing identity. Either IdentityID or DeveloperUserIdentifier
    /// must not be null. If you supply only one of these values, the other value will be
    /// searched in the database and returned as a part of the response. If you supply both,
    /// DeveloperUserIdentifier will be matched against IdentityID.
    /// If the values are verified against the database, the response returns both values
    /// and is the same as the request. Otherwise a ResourceConflictException
    /// is thrown.
    /// 
    ///  
    /// 
    ///  LookupDeveloperIdentity is intended for low-throughput control plane
    /// operations: for example, to enable customer service to locate an identity ID by username.
    /// If you are using it for higher-volume operations such as user authentication, your
    /// requests are likely to be throttled. GetOpenIdTokenForDeveloperIdentity is
    /// a better option for higher-volume operations for user authentication.
    /// 
    ///  
    /// 
    /// You must use AWS Developer credentials to call this API.
    /// 
    /// 
    public partial class LookupDeveloperIdentityRequest : AmazonCognitoIdentityRequest
    {
        private string _developerUserIdentifier;
        private string _identityId;
        private string _identityPoolId;
        private int? _maxResults;
        private string _nextToken;
        /// 
        /// Gets and sets the property DeveloperUserIdentifier. 
        /// 
        /// A unique ID used by your backend authentication process to identify a user. Typically,
        /// a developer identity provider would issue many developer user identifiers, in keeping
        /// with the number of users.
        /// 
        /// 
        [AWSProperty(Min=1, Max=1024)]
        public string DeveloperUserIdentifier
        {
            get { return this._developerUserIdentifier; }
            set { this._developerUserIdentifier = value; }
        }
        // Check to see if DeveloperUserIdentifier property is set
        internal bool IsSetDeveloperUserIdentifier()
        {
            return this._developerUserIdentifier != null;
        }
        /// 
        /// Gets and sets the property IdentityId. 
        /// 
        /// A unique identifier in the format REGION:GUID.
        /// 
        /// 
        [AWSProperty(Min=1, Max=55)]
        public string IdentityId
        {
            get { return this._identityId; }
            set { this._identityId = value; }
        }
        // Check to see if IdentityId property is set
        internal bool IsSetIdentityId()
        {
            return this._identityId != null;
        }
        /// 
        /// Gets and sets the property IdentityPoolId. 
        /// 
        /// An identity pool ID in the format REGION:GUID.
        /// 
        /// 
        [AWSProperty(Required=true, Min=1, Max=55)]
        public string IdentityPoolId
        {
            get { return this._identityPoolId; }
            set { this._identityPoolId = value; }
        }
        // Check to see if IdentityPoolId property is set
        internal bool IsSetIdentityPoolId()
        {
            return this._identityPoolId != null;
        }
        /// 
        /// Gets and sets the property MaxResults. 
        /// 
        /// The maximum number of identities to return.
        /// 
        /// 
        [AWSProperty(Min=1, Max=60)]
        public int MaxResults
        {
            get { return this._maxResults.GetValueOrDefault(); }
            set { this._maxResults = value; }
        }
        // Check to see if MaxResults property is set
        internal bool IsSetMaxResults()
        {
            return this._maxResults.HasValue; 
        }
        /// 
        /// Gets and sets the property NextToken. 
        /// 
        /// A pagination token. The first call you make will have NextToken set to
        /// null. After that the service will return NextToken values as needed.
        /// For example, let's say you make a request with MaxResults set to 10,
        /// and there are 20 matches in the database. The service will return a pagination token
        /// as a part of the response. This token can be used to call the API again and get results
        /// starting from the 11th match.
        /// 
        /// 
        [AWSProperty(Min=1)]
        public string NextToken
        {
            get { return this._nextToken; }
            set { this._nextToken = value; }
        }
        // Check to see if NextToken property is set
        internal bool IsSetNextToken()
        {
            return this._nextToken != null;
        }
    }
}