"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserPool = exports.VerificationMessageTemplate = exports.UserPoolAddOns = exports.SmsConfiguration = exports.PasswordPolicy = exports.LambdaConfig = exports.CustomSmsSender = exports.CustomEmailSender = exports.Schema = exports.StringAttributeConstraints = exports.NumberAttributeConstraints = exports.UsernameConfiguration = exports.AdminCreateUserConfig = exports.InviteMessageTemplate = exports.SoftwareTokenMfaConfiguration = exports.EmailConfiguration = exports.AccountRecoverySetting = exports.RecoveryMechanism = exports.DeviceConfiguration = void 0;
const core = __importStar(require("@terrascript/core"));
class DeviceConfiguration extends core.Schema {
}
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], DeviceConfiguration.prototype, "challengeRequiredOnNewDevice", void 0);
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], DeviceConfiguration.prototype, "deviceOnlyRememberedOnUserPrompt", void 0);
exports.DeviceConfiguration = DeviceConfiguration;
class RecoveryMechanism extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], RecoveryMechanism.prototype, "name", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], RecoveryMechanism.prototype, "priority", void 0);
exports.RecoveryMechanism = RecoveryMechanism;
class AccountRecoverySetting extends core.Schema {
}
__decorate([
    core.attr(RecoveryMechanism, { kind: "array" }),
    __metadata("design:type", Object)
], AccountRecoverySetting.prototype, "recoveryMechanism", void 0);
exports.AccountRecoverySetting = AccountRecoverySetting;
class EmailConfiguration extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], EmailConfiguration.prototype, "configurationSet", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], EmailConfiguration.prototype, "emailSendingAccount", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], EmailConfiguration.prototype, "fromEmailAddress", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], EmailConfiguration.prototype, "replyToEmailAddress", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], EmailConfiguration.prototype, "sourceArn", void 0);
exports.EmailConfiguration = EmailConfiguration;
class SoftwareTokenMfaConfiguration extends core.Schema {
}
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], SoftwareTokenMfaConfiguration.prototype, "enabled", void 0);
exports.SoftwareTokenMfaConfiguration = SoftwareTokenMfaConfiguration;
class InviteMessageTemplate extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], InviteMessageTemplate.prototype, "emailMessage", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], InviteMessageTemplate.prototype, "emailSubject", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], InviteMessageTemplate.prototype, "smsMessage", void 0);
exports.InviteMessageTemplate = InviteMessageTemplate;
class AdminCreateUserConfig extends core.Schema {
}
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], AdminCreateUserConfig.prototype, "allowAdminCreateUserOnly", void 0);
__decorate([
    core.attr(InviteMessageTemplate),
    __metadata("design:type", InviteMessageTemplate)
], AdminCreateUserConfig.prototype, "inviteMessageTemplate", void 0);
exports.AdminCreateUserConfig = AdminCreateUserConfig;
class UsernameConfiguration extends core.Schema {
}
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], UsernameConfiguration.prototype, "caseSensitive", void 0);
exports.UsernameConfiguration = UsernameConfiguration;
class NumberAttributeConstraints extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], NumberAttributeConstraints.prototype, "maxValue", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], NumberAttributeConstraints.prototype, "minValue", void 0);
exports.NumberAttributeConstraints = NumberAttributeConstraints;
class StringAttributeConstraints extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], StringAttributeConstraints.prototype, "maxLength", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], StringAttributeConstraints.prototype, "minLength", void 0);
exports.StringAttributeConstraints = StringAttributeConstraints;
class Schema extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], Schema.prototype, "attributeDataType", void 0);
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], Schema.prototype, "developerOnlyAttribute", void 0);
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], Schema.prototype, "mutable", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], Schema.prototype, "name", void 0);
__decorate([
    core.attr(NumberAttributeConstraints),
    __metadata("design:type", NumberAttributeConstraints)
], Schema.prototype, "numberAttributeConstraints", void 0);
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], Schema.prototype, "required", void 0);
__decorate([
    core.attr(StringAttributeConstraints),
    __metadata("design:type", StringAttributeConstraints)
], Schema.prototype, "stringAttributeConstraints", void 0);
exports.Schema = Schema;
class CustomEmailSender extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], CustomEmailSender.prototype, "lambdaArn", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], CustomEmailSender.prototype, "lambdaVersion", void 0);
exports.CustomEmailSender = CustomEmailSender;
class CustomSmsSender extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], CustomSmsSender.prototype, "lambdaArn", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], CustomSmsSender.prototype, "lambdaVersion", void 0);
exports.CustomSmsSender = CustomSmsSender;
class LambdaConfig extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LambdaConfig.prototype, "createAuthChallenge", void 0);
__decorate([
    core.attr(CustomEmailSender, { computed: true }),
    __metadata("design:type", CustomEmailSender)
], LambdaConfig.prototype, "customEmailSender", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LambdaConfig.prototype, "customMessage", void 0);
__decorate([
    core.attr(CustomSmsSender, { computed: true }),
    __metadata("design:type", CustomSmsSender)
], LambdaConfig.prototype, "customSmsSender", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LambdaConfig.prototype, "defineAuthChallenge", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LambdaConfig.prototype, "kmsKeyId", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LambdaConfig.prototype, "postAuthentication", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LambdaConfig.prototype, "postConfirmation", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LambdaConfig.prototype, "preAuthentication", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LambdaConfig.prototype, "preSignUp", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LambdaConfig.prototype, "preTokenGeneration", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LambdaConfig.prototype, "userMigration", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LambdaConfig.prototype, "verifyAuthChallengeResponse", void 0);
exports.LambdaConfig = LambdaConfig;
class PasswordPolicy extends core.Schema {
}
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], PasswordPolicy.prototype, "minimumLength", void 0);
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], PasswordPolicy.prototype, "requireLowercase", void 0);
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], PasswordPolicy.prototype, "requireNumbers", void 0);
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], PasswordPolicy.prototype, "requireSymbols", void 0);
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], PasswordPolicy.prototype, "requireUppercase", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], PasswordPolicy.prototype, "temporaryPasswordValidityDays", void 0);
exports.PasswordPolicy = PasswordPolicy;
class SmsConfiguration extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], SmsConfiguration.prototype, "externalId", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], SmsConfiguration.prototype, "snsCallerArn", void 0);
exports.SmsConfiguration = SmsConfiguration;
class UserPoolAddOns extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], UserPoolAddOns.prototype, "advancedSecurityMode", void 0);
exports.UserPoolAddOns = UserPoolAddOns;
class VerificationMessageTemplate extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], VerificationMessageTemplate.prototype, "defaultEmailOption", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VerificationMessageTemplate.prototype, "emailMessage", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VerificationMessageTemplate.prototype, "emailMessageByLink", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VerificationMessageTemplate.prototype, "emailSubject", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VerificationMessageTemplate.prototype, "emailSubjectByLink", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], VerificationMessageTemplate.prototype, "smsMessage", void 0);
exports.VerificationMessageTemplate = VerificationMessageTemplate;
class UserPool extends core.Resource {
    constructor(name, args) {
        super(name, "aws_cognito_user_pool", args);
    }
    getNamespace() {
        return "aws_cognito";
    }
}
__decorate([
    core.attr(AccountRecoverySetting),
    __metadata("design:type", AccountRecoverySetting)
], UserPool.prototype, "accountRecoverySetting", void 0);
__decorate([
    core.attr(AdminCreateUserConfig, { computed: true }),
    __metadata("design:type", AdminCreateUserConfig)
], UserPool.prototype, "adminCreateUserConfig", void 0);
__decorate([
    core.attr(String, { kind: "array" }),
    __metadata("design:type", Object)
], UserPool.prototype, "aliasAttributes", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], UserPool.prototype, "arn", void 0);
__decorate([
    core.attr(String, { kind: "array" }),
    __metadata("design:type", Object)
], UserPool.prototype, "autoVerifiedAttributes", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], UserPool.prototype, "creationDate", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], UserPool.prototype, "customDomain", void 0);
__decorate([
    core.attr(DeviceConfiguration),
    __metadata("design:type", DeviceConfiguration)
], UserPool.prototype, "deviceConfiguration", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], UserPool.prototype, "domain", void 0);
__decorate([
    core.attr(EmailConfiguration),
    __metadata("design:type", EmailConfiguration)
], UserPool.prototype, "emailConfiguration", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], UserPool.prototype, "emailVerificationMessage", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], UserPool.prototype, "emailVerificationSubject", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], UserPool.prototype, "endpoint", void 0);
__decorate([
    core.attr(Number, { computed: true }),
    __metadata("design:type", Object)
], UserPool.prototype, "estimatedNumberOfUsers", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], UserPool.prototype, "id", void 0);
__decorate([
    core.attr(LambdaConfig),
    __metadata("design:type", LambdaConfig)
], UserPool.prototype, "lambdaConfig", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], UserPool.prototype, "lastModifiedDate", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], UserPool.prototype, "mfaConfiguration", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], UserPool.prototype, "name", void 0);
__decorate([
    core.attr(PasswordPolicy, { computed: true }),
    __metadata("design:type", PasswordPolicy)
], UserPool.prototype, "passwordPolicy", void 0);
__decorate([
    core.attr(Schema, { kind: "array" }),
    __metadata("design:type", Object)
], UserPool.prototype, "schema", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], UserPool.prototype, "smsAuthenticationMessage", void 0);
__decorate([
    core.attr(SmsConfiguration, { computed: true }),
    __metadata("design:type", SmsConfiguration)
], UserPool.prototype, "smsConfiguration", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], UserPool.prototype, "smsVerificationMessage", void 0);
__decorate([
    core.attr(SoftwareTokenMfaConfiguration),
    __metadata("design:type", SoftwareTokenMfaConfiguration)
], UserPool.prototype, "softwareTokenMfaConfiguration", void 0);
__decorate([
    core.attr(String, { kind: "map" }),
    __metadata("design:type", Object)
], UserPool.prototype, "tags", void 0);
__decorate([
    core.attr(String, { computed: true, kind: "map" }),
    __metadata("design:type", Object)
], UserPool.prototype, "tagsAll", void 0);
__decorate([
    core.attr(UserPoolAddOns),
    __metadata("design:type", UserPoolAddOns)
], UserPool.prototype, "userPoolAddOns", void 0);
__decorate([
    core.attr(String, { kind: "array" }),
    __metadata("design:type", Object)
], UserPool.prototype, "usernameAttributes", void 0);
__decorate([
    core.attr(UsernameConfiguration),
    __metadata("design:type", UsernameConfiguration)
], UserPool.prototype, "usernameConfiguration", void 0);
__decorate([
    core.attr(VerificationMessageTemplate, { computed: true }),
    __metadata("design:type", VerificationMessageTemplate)
], UserPool.prototype, "verificationMessageTemplate", void 0);
exports.UserPool = UserPool;
//# sourceMappingURL=user_pool.js.map