"use strict";
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserPool = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
/**
 * Definition of AWS::Cognito::UserPool Resource Type
 */
class UserPool extends pulumi.CustomResource {
    /**
     * Get an existing UserPool resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name, id, opts) {
        return new UserPool(name, undefined, { ...opts, id: id });
    }
    /**
     * Returns true if the given object is an instance of UserPool.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj) {
        if (obj === undefined || obj === null) {
            return false;
        }
        return obj['__pulumiType'] === UserPool.__pulumiType;
    }
    /**
     * Create a UserPool resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name, args, opts) {
        let resourceInputs = {};
        opts = opts || {};
        if (!opts.id) {
            resourceInputs["accountRecoverySetting"] = args?.accountRecoverySetting;
            resourceInputs["adminCreateUserConfig"] = args?.adminCreateUserConfig;
            resourceInputs["aliasAttributes"] = args?.aliasAttributes;
            resourceInputs["autoVerifiedAttributes"] = args?.autoVerifiedAttributes;
            resourceInputs["deletionProtection"] = args?.deletionProtection;
            resourceInputs["deviceConfiguration"] = args?.deviceConfiguration;
            resourceInputs["emailAuthenticationMessage"] = args?.emailAuthenticationMessage;
            resourceInputs["emailAuthenticationSubject"] = args?.emailAuthenticationSubject;
            resourceInputs["emailConfiguration"] = args?.emailConfiguration;
            resourceInputs["emailVerificationMessage"] = args?.emailVerificationMessage;
            resourceInputs["emailVerificationSubject"] = args?.emailVerificationSubject;
            resourceInputs["enabledMfas"] = args?.enabledMfas;
            resourceInputs["lambdaConfig"] = args?.lambdaConfig;
            resourceInputs["mfaConfiguration"] = args?.mfaConfiguration;
            resourceInputs["policies"] = args?.policies;
            resourceInputs["schema"] = args?.schema;
            resourceInputs["smsAuthenticationMessage"] = args?.smsAuthenticationMessage;
            resourceInputs["smsConfiguration"] = args?.smsConfiguration;
            resourceInputs["smsVerificationMessage"] = args?.smsVerificationMessage;
            resourceInputs["userAttributeUpdateSettings"] = args?.userAttributeUpdateSettings;
            resourceInputs["userPoolAddOns"] = args?.userPoolAddOns;
            resourceInputs["userPoolName"] = args?.userPoolName;
            resourceInputs["userPoolTags"] = args?.userPoolTags;
            resourceInputs["userPoolTier"] = args?.userPoolTier;
            resourceInputs["usernameAttributes"] = args?.usernameAttributes;
            resourceInputs["usernameConfiguration"] = args?.usernameConfiguration;
            resourceInputs["verificationMessageTemplate"] = args?.verificationMessageTemplate;
            resourceInputs["webAuthnFactorConfiguration"] = args?.webAuthnFactorConfiguration;
            resourceInputs["webAuthnRelyingPartyId"] = args?.webAuthnRelyingPartyId;
            resourceInputs["webAuthnUserVerification"] = args?.webAuthnUserVerification;
            resourceInputs["arn"] = undefined /*out*/;
            resourceInputs["providerName"] = undefined /*out*/;
            resourceInputs["providerUrl"] = undefined /*out*/;
            resourceInputs["userPoolId"] = undefined /*out*/;
        }
        else {
            resourceInputs["accountRecoverySetting"] = undefined /*out*/;
            resourceInputs["adminCreateUserConfig"] = undefined /*out*/;
            resourceInputs["aliasAttributes"] = undefined /*out*/;
            resourceInputs["arn"] = undefined /*out*/;
            resourceInputs["autoVerifiedAttributes"] = undefined /*out*/;
            resourceInputs["deletionProtection"] = undefined /*out*/;
            resourceInputs["deviceConfiguration"] = undefined /*out*/;
            resourceInputs["emailAuthenticationMessage"] = undefined /*out*/;
            resourceInputs["emailAuthenticationSubject"] = undefined /*out*/;
            resourceInputs["emailConfiguration"] = undefined /*out*/;
            resourceInputs["emailVerificationMessage"] = undefined /*out*/;
            resourceInputs["emailVerificationSubject"] = undefined /*out*/;
            resourceInputs["enabledMfas"] = undefined /*out*/;
            resourceInputs["lambdaConfig"] = undefined /*out*/;
            resourceInputs["mfaConfiguration"] = undefined /*out*/;
            resourceInputs["policies"] = undefined /*out*/;
            resourceInputs["providerName"] = undefined /*out*/;
            resourceInputs["providerUrl"] = undefined /*out*/;
            resourceInputs["schema"] = undefined /*out*/;
            resourceInputs["smsAuthenticationMessage"] = undefined /*out*/;
            resourceInputs["smsConfiguration"] = undefined /*out*/;
            resourceInputs["smsVerificationMessage"] = undefined /*out*/;
            resourceInputs["userAttributeUpdateSettings"] = undefined /*out*/;
            resourceInputs["userPoolAddOns"] = undefined /*out*/;
            resourceInputs["userPoolId"] = undefined /*out*/;
            resourceInputs["userPoolName"] = undefined /*out*/;
            resourceInputs["userPoolTags"] = undefined /*out*/;
            resourceInputs["userPoolTier"] = undefined /*out*/;
            resourceInputs["usernameAttributes"] = undefined /*out*/;
            resourceInputs["usernameConfiguration"] = undefined /*out*/;
            resourceInputs["verificationMessageTemplate"] = undefined /*out*/;
            resourceInputs["webAuthnFactorConfiguration"] = undefined /*out*/;
            resourceInputs["webAuthnRelyingPartyId"] = undefined /*out*/;
            resourceInputs["webAuthnUserVerification"] = undefined /*out*/;
        }
        opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
        super(UserPool.__pulumiType, name, resourceInputs, opts);
    }
}
exports.UserPool = UserPool;
/** @internal */
UserPool.__pulumiType = 'aws-native:cognito:UserPool';
//# sourceMappingURL=userPool.js.map