{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-cognito-userpool.json",
  "title": "AWSCognitoUserPoolProperties",
  "description": "Resource Type definition for AWS::Cognito::UserPool. Source:- No source definition found, add manually please",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-cognito-userpool.json",
    "sourceSha256": "4105d852e60d146fb407e183f75ea7aeb735f23da2cd9bac11ecf74e4a5edfa3"
  },
  "type": "object",
  "properties": {
    "UserPoolTags": {
      "type": "object"
    },
    "Policies": {
      "$ref": "#/$defs/Policies"
    },
    "Schema": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/SchemaAttribute"
      }
    },
    "AdminCreateUserConfig": {
      "$ref": "#/$defs/AdminCreateUserConfig"
    },
    "UsernameConfiguration": {
      "$ref": "#/$defs/UsernameConfiguration"
    },
    "UserPoolName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "SmsVerificationMessage": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "UserAttributeUpdateSettings": {
      "$ref": "#/$defs/UserAttributeUpdateSettings"
    },
    "EmailConfiguration": {
      "$ref": "#/$defs/EmailConfiguration"
    },
    "SmsConfiguration": {
      "$ref": "#/$defs/SmsConfiguration"
    },
    "EmailVerificationSubject": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "AccountRecoverySetting": {
      "$ref": "#/$defs/AccountRecoverySetting"
    },
    "VerificationMessageTemplate": {
      "$ref": "#/$defs/VerificationMessageTemplate"
    },
    "MfaConfiguration": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "DeletionProtection": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "SmsAuthenticationMessage": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "UserPoolAddOns": {
      "$ref": "#/$defs/UserPoolAddOns"
    },
    "AliasAttributes": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "type": "string"
      }
    },
    "EnabledMfas": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "type": "string"
      }
    },
    "LambdaConfig": {
      "$ref": "#/$defs/LambdaConfig"
    },
    "UsernameAttributes": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "type": "string"
      }
    },
    "AutoVerifiedAttributes": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "type": "string"
      }
    },
    "DeviceConfiguration": {
      "$ref": "#/$defs/DeviceConfiguration"
    },
    "EmailVerificationMessage": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    }
  },
  "typeName": "AWS::Cognito::UserPool",
  "readOnlyProperties": [
    "/properties/Id",
    "/properties/Arn",
    "/properties/ProviderName",
    "/properties/ProviderURL"
  ],
  "$defs": {
    "Policies": {
      "type": "object",
      "title": "AWSCognitoUserPoolPoliciesDefinition",
      "properties": {
        "PasswordPolicy": {
          "$ref": "#/$defs/PasswordPolicy"
        }
      },
      "additionalProperties": false
    },
    "VerificationMessageTemplate": {
      "type": "object",
      "title": "AWSCognitoUserPoolVerificationMessageTemplateDefinition",
      "properties": {
        "EmailMessageByLink": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "EmailMessage": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "SmsMessage": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "EmailSubject": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "DefaultEmailOption": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "EmailSubjectByLink": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "NumberAttributeConstraints": {
      "type": "object",
      "title": "AWSCognitoUserPoolNumberAttributeConstraintsDefinition",
      "properties": {
        "MinValue": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "MaxValue": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "InviteMessageTemplate": {
      "type": "object",
      "title": "AWSCognitoUserPoolInviteMessageTemplateDefinition",
      "properties": {
        "EmailSubject": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "EmailMessage": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "SMSMessage": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "AdminCreateUserConfig": {
      "type": "object",
      "title": "AWSCognitoUserPoolAdminCreateUserConfigDefinition",
      "properties": {
        "InviteMessageTemplate": {
          "$ref": "#/$defs/InviteMessageTemplate"
        },
        "UnusedAccountValidityDays": {
          "type": "integer"
        },
        "AllowAdminCreateUserOnly": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "UsernameConfiguration": {
      "type": "object",
      "title": "AWSCognitoUserPoolUsernameConfigurationDefinition",
      "properties": {
        "CaseSensitive": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "UserPoolAddOns": {
      "type": "object",
      "title": "AWSCognitoUserPoolUserPoolAddOnsDefinition",
      "properties": {
        "AdvancedSecurityMode": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "RecoveryOption": {
      "type": "object",
      "title": "AWSCognitoUserPoolRecoveryOptionDefinition",
      "properties": {
        "Priority": {
          "type": "integer"
        },
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "StringAttributeConstraints": {
      "type": "object",
      "title": "AWSCognitoUserPoolStringAttributeConstraintsDefinition",
      "properties": {
        "MaxLength": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "MinLength": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "UserAttributeUpdateSettings": {
      "type": "object",
      "title": "AWSCognitoUserPoolUserAttributeUpdateSettingsDefinition",
      "properties": {
        "AttributesRequireVerificationBeforeUpdate": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "AttributesRequireVerificationBeforeUpdate"
      ],
      "additionalProperties": false
    },
    "CustomSMSSender": {
      "type": "object",
      "title": "AWSCognitoUserPoolCustomSMSSenderDefinition",
      "properties": {
        "LambdaArn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "LambdaVersion": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "EmailConfiguration": {
      "type": "object",
      "title": "AWSCognitoUserPoolEmailConfigurationDefinition",
      "properties": {
        "ReplyToEmailAddress": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ConfigurationSet": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "EmailSendingAccount": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "From": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "SourceArn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "SmsConfiguration": {
      "type": "object",
      "title": "AWSCognitoUserPoolSmsConfigurationDefinition",
      "properties": {
        "SnsCallerArn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "SnsRegion": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ExternalId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "PasswordPolicy": {
      "type": "object",
      "title": "AWSCognitoUserPoolPasswordPolicyDefinition",
      "properties": {
        "RequireNumbers": {
          "type": "boolean"
        },
        "MinimumLength": {
          "type": "integer"
        },
        "TemporaryPasswordValidityDays": {
          "type": "integer"
        },
        "RequireUppercase": {
          "type": "boolean"
        },
        "RequireLowercase": {
          "type": "boolean"
        },
        "RequireSymbols": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "LambdaConfig": {
      "type": "object",
      "title": "AWSCognitoUserPoolLambdaConfigDefinition",
      "properties": {
        "CreateAuthChallenge": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "PreSignUp": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "KMSKeyID": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "UserMigration": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "PostAuthentication": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "VerifyAuthChallengeResponse": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "PreAuthentication": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "DefineAuthChallenge": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "PreTokenGeneration": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "CustomSMSSender": {
          "$ref": "#/$defs/CustomSMSSender"
        },
        "PostConfirmation": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "CustomMessage": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "CustomEmailSender": {
          "$ref": "#/$defs/CustomEmailSender"
        }
      },
      "additionalProperties": false
    },
    "CustomEmailSender": {
      "type": "object",
      "title": "AWSCognitoUserPoolCustomEmailSenderDefinition",
      "properties": {
        "LambdaArn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "LambdaVersion": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "SchemaAttribute": {
      "type": "object",
      "title": "AWSCognitoUserPoolSchemaAttributeDefinition",
      "properties": {
        "DeveloperOnlyAttribute": {
          "type": "boolean"
        },
        "Mutable": {
          "type": "boolean"
        },
        "AttributeDataType": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "StringAttributeConstraints": {
          "$ref": "#/$defs/StringAttributeConstraints"
        },
        "Required": {
          "type": "boolean"
        },
        "NumberAttributeConstraints": {
          "$ref": "#/$defs/NumberAttributeConstraints"
        },
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "DeviceConfiguration": {
      "type": "object",
      "title": "AWSCognitoUserPoolDeviceConfigurationDefinition",
      "properties": {
        "DeviceOnlyRememberedOnUserPrompt": {
          "type": "boolean"
        },
        "ChallengeRequiredOnNewDevice": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "AccountRecoverySetting": {
      "type": "object",
      "title": "AWSCognitoUserPoolAccountRecoverySettingDefinition",
      "properties": {
        "RecoveryMechanisms": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "$ref": "#/$defs/RecoveryOption"
          }
        }
      },
      "additionalProperties": false
    }
  },
  "primaryIdentifier": [
    "/properties/Id"
  ],
  "additionalProperties": false
}
