Amazon Cognito · JSON Structure
Amazon Cognito User Pool Structure
Schema representing an Amazon Cognito user pool configuration and its properties.
Type: object
Properties: 16
Required: 1
AuthenticationIdentityOAuthOIDCSAMLUser ManagementFederated Identity
Amazon Cognito User Pool is a JSON Structure definition published by Amazon Cognito, describing 16 properties, of which 1 is required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.
Properties
Id
Name
Status
Arn
CreationDate
LastModifiedDate
EstimatedNumberOfUsers
MfaConfiguration
Policies
AutoVerifiedAttributes
UsernameAttributes
SchemaAttributes
EmailConfiguration
SmsConfiguration
UserPoolTags
AdminCreateUserConfig
Meta-schema: https://json-structure.org/meta/core/v0/#
JSON Structure
{
"$schema": "https://json-structure.org/meta/core/v0/#",
"$id": "https://raw.githubusercontent.com/api-evangelist/amazon-cognito/refs/heads/main/json-structure/amazon-cognito-user-pool-structure.json",
"name": "Amazon Cognito User Pool",
"description": "Schema representing an Amazon Cognito user pool configuration and its properties.",
"type": "object",
"properties": {
"Id": {
"type": "string",
"description": "The unique identifier for the user pool."
},
"Name": {
"type": "string",
"description": "The name of the user pool."
},
"Status": {
"type": "string",
"description": "The status of the user pool.",
"enum": [
"Enabled",
"Disabled"
]
},
"Arn": {
"type": "string",
"description": "The Amazon Resource Name (ARN) for the user pool.",
"pattern": "^arn:aws:cognito-idp:[a-z0-9-]+:[0-9]+:userpool/[a-zA-Z0-9_-]+$"
},
"CreationDate": {
"type": "datetime",
"description": "The date and time when the user pool was created."
},
"LastModifiedDate": {
"type": "datetime",
"description": "The date and time when the user pool was last modified."
},
"EstimatedNumberOfUsers": {
"type": "integer",
"description": "A number estimating the size of the user pool.",
"minimum": 0
},
"MfaConfiguration": {
"type": "string",
"description": "The multi-factor authentication (MFA) configuration.",
"enum": [
"OFF",
"ON",
"OPTIONAL"
]
},
"Policies": {
"type": "object",
"description": "The policies associated with the user pool.",
"properties": {
"PasswordPolicy": {
"type": "object",
"description": "The password policy for the user pool.",
"properties": {
"MinimumLength": {
"type": "integer",
"description": "The minimum length of the password.",
"minimum": 6,
"maximum": 99
},
"RequireUppercase": {
"type": "boolean",
"description": "Whether the password must contain at least one uppercase letter."
},
"RequireLowercase": {
"type": "boolean",
"description": "Whether the password must contain at least one lowercase letter."
},
"RequireNumbers": {
"type": "boolean",
"description": "Whether the password must contain at least one number."
},
"RequireSymbols": {
"type": "boolean",
"description": "Whether the password must contain at least one symbol."
},
"TemporaryPasswordValidityDays": {
"type": "integer",
"description": "The number of days a temporary password is valid.",
"minimum": 0,
"maximum": 365
}
}
}
}
},
"AutoVerifiedAttributes": {
"type": "array",
"description": "The attributes that are automatically verified.",
"items": {
"type": "string",
"enum": [
"phone_number",
"email"
]
}
},
"UsernameAttributes": {
"type": "array",
"description": "Specifies whether email addresses or phone numbers can be used as user names when a user signs up.",
"items": {
"type": "string",
"enum": [
"phone_number",
"email"
]
}
},
"SchemaAttributes": {
"type": "array",
"description": "The schema attributes for the user pool.",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string",
"description": "The name of the attribute."
},
"AttributeDataType": {
"type": "string",
"description": "The data type of the attribute.",
"enum": [
"String",
"Number",
"DateTime",
"Boolean"
]
},
"Mutable": {
"type": "boolean",
"description": "Whether the attribute can be changed after creation."
},
"Required": {
"type": "boolean",
"description": "Whether the attribute is required during user registration."
},
"StringAttributeConstraints": {
"type": "object",
"properties": {
"MinLength": {
"type": "string",
"description": "The minimum length."
},
"MaxLength": {
"type": "string",
"description": "The maximum length."
}
}
},
"NumberAttributeConstraints": {
"type": "object",
"properties": {
"MinValue": {
"type": "string",
"description": "The minimum value."
},
"MaxValue": {
"type": "string",
"description": "The maximum value."
}
}
}
},
"required": [
"Name"
]
}
},
"EmailConfiguration": {
"type": "object",
"description": "The email configuration for the user pool.",
"properties": {
"SourceArn": {
"type": "string",
"description": "The ARN of a verified email address in Amazon SES."
},
"ReplyToEmailAddress": {
"type": "string",
"format": "email",
"description": "The destination to which the receiver of the email should reply."
},
"EmailSendingAccount": {
"type": "string",
"description": "Specifies whether Amazon Cognito emails your users by using its built-in email functionality or your Amazon SES email configuration.",
"enum": [
"COGNITO_DEFAULT",
"DEVELOPER"
]
}
}
},
"SmsConfiguration": {
"type": "object",
"description": "The SMS configuration for the user pool.",
"properties": {
"SnsCallerArn": {
"type": "string",
"description": "The Amazon Resource Name (ARN) of the Amazon SNS caller."
},
"ExternalId": {
"type": "string",
"description": "The external ID."
},
"SnsRegion": {
"type": "string",
"description": "The AWS Region to use with Amazon SNS integration."
}
},
"required": [
"SnsCallerArn"
]
},
"UserPoolTags": {
"type": "object",
"description": "The tags that are assigned to the user pool.",
"additionalProperties": {
"type": "string"
}
},
"AdminCreateUserConfig": {
"type": "object",
"description": "The configuration for AdminCreateUser requests.",
"properties": {
"AllowAdminCreateUserOnly": {
"type": "boolean",
"description": "Set to true if only the administrator is allowed to create user profiles."
},
"UnusedAccountValidityDays": {
"type": "integer",
"description": "The user account expiration limit, in days, after which the account is no longer usable."
},
"InviteMessageTemplate": {
"type": "object",
"properties": {
"SMSMessage": {
"type": "string"
},
"EmailMessage": {
"type": "string"
},
"EmailSubject": {
"type": "string"
}
}
}
}
}
},
"required": [
"Name"
]
}