Sample code for 30+ languages & platforms
AutoIt

Amazon Cognito - Describe User Pool

See more Amazon Cognito Examples

Returns the configuration information and metadata of the specified user pool.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.

$oRest = ObjCreate("Chilkat.Rest")

$oAuthAws = ObjCreate("Chilkat.AuthAws")
$oAuthAws.AccessKey = "AWS_ACCESS_KEY"
$oAuthAws.SecretKey = "AWS_SECRET_KEY"
; Don't forget to change the region to your particular region. (Also make the same change in the call to Connect below.)
$oAuthAws.Region = "us-west-2"
$oAuthAws.ServiceName = "cognito-idp"
; SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
$oRest.SetAuthAws($oAuthAws)

; URL: https://cognito-idp.us-west-2.amazonaws.com/
Local $bTls = True
Local $iPort = 443
Local $bAutoReconnect = True
; Use the same region as specified above.
$bSuccess = $oRest.Connect("cognito-idp.us-west-2.amazonaws.com",$iPort,$bTls,$bAutoReconnect)
If ($bSuccess <> True) Then
    ConsoleWrite("ConnectFailReason: " & $oRest.ConnectFailReason & @CRLF)
    ConsoleWrite($oRest.LastErrorText & @CRLF)
    Exit
EndIf

; Note: The above code does not need to be repeatedly called for each REST request.
; The rest object can be setup once, and then many requests can be sent.  Chilkat will automatically
; reconnect within a FullRequest* method as needed.  It is only the very first connection that is explicitly
; made via the Connect method.

$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.UpdateString("UserPoolId","us-west-2_yt6WzO3SA")

$oRest.AddHeader("Content-Type","application/x-amz-json-1.0")
$oRest.AddHeader("X-Amz-Target","AWSCognitoIdentityProviderService.DescribeUserPool")
$oRest.AddHeader("Accept-Encoding","identity")

$oSbRequestBody = ObjCreate("Chilkat.StringBuilder")
$oJson.EmitSb($oSbRequestBody)
$oSbResponseBody = ObjCreate("Chilkat.StringBuilder")
$bSuccess = $oRest.FullRequestSb("POST","/",$oSbRequestBody,$oSbResponseBody)
If ($bSuccess <> True) Then
    ConsoleWrite($oRest.LastErrorText & @CRLF)
    Exit
EndIf

Local $iRespStatusCode = $oRest.ResponseStatusCode
ConsoleWrite("response status code = " & $iRespStatusCode & @CRLF)
If ($iRespStatusCode <> 200) Then
    ConsoleWrite("Response Status Code = " & $iRespStatusCode & @CRLF)
    ConsoleWrite("Response Header:" & @CRLF)
    ConsoleWrite($oRest.ResponseHeader & @CRLF)
    ConsoleWrite("Response Body:" & @CRLF)
    ConsoleWrite($oSbResponseBody.GetAsString() & @CRLF)
    Exit
EndIf

$oJsonResponse = ObjCreate("Chilkat.JsonObject")
$oJsonResponse.LoadSb($oSbResponseBody)

$oJsonResponse.EmitCompact = False
ConsoleWrite($oJsonResponse.Emit() & @CRLF)

; Sample JSON response:
; (Sample code for parsing the JSON response is shown below)

; Use this online tool to generate parsing code from sample JSON: 
; Generate Parsing Code from JSON

; {
;   "UserPool": {
;     "AccountRecoverySetting": {
;       "RecoveryMechanisms": [
;         {
;           "Name": "verified_phone_number",
;           "Priority": 1
;         },
;         {
;           "Name": "verified_email",
;           "Priority": 2
;         }
;       ]
;     },
;     "AdminCreateUserConfig": {
;       "AllowAdminCreateUserOnly": false,
;       "InviteMessageTemplate": {
;         "EmailMessage": "Your username is {username} and temporary password is {####}. ",
;         "EmailSubject": "Your temporary password",
;         "SMSMessage": "Your username is {username} and temporary password is {####}. "
;       },
;       "UnusedAccountValidityDays": 7
;     },
;     "Arn": "arn:aws:cognito-idp:us-west-2:954491834127:userpool/us-west-2_yt6WzO3SA",
;     "AutoVerifiedAttributes": [
;       "email",
;       "phone_number"
;     ],
;     "CreationDate": 1.636388909817E9,
;     "EmailConfiguration": {
;       "EmailSendingAccount": "DEVELOPER",
;       "From": "admin@chilkatsoft.com",
;       "ReplyToEmailAddress": "admin@chilkatsoft.com",
;       "SourceArn": "arn:aws:ses:us-west-2:954491834127:identity/admin@chilkatsoft.com"
;     },
;     "EmailVerificationMessage": "Your verification code is {####}. ",
;     "EmailVerificationSubject": "Your verification code",
;     "EstimatedNumberOfUsers": 0,
;     "Id": "us-west-2_yt6WzO3SA",
;     "LambdaConfig": {},
;     "LastModifiedDate": 1.636388910377E9,
;     "MfaConfiguration": "ON",
;     "Name": "chilkat",
;     "Policies": {
;       "PasswordPolicy": {
;         "MinimumLength": 8,
;         "RequireLowercase": true,
;         "RequireNumbers": true,
;         "RequireSymbols": true,
;         "RequireUppercase": true,
;         "TemporaryPasswordValidityDays": 7
;       }
;     },
;     "SchemaAttributes": [
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": false,
;         "Name": "sub",
;         "Required": true,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "1"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "name",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "given_name",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "family_name",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "middle_name",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "nickname",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "preferred_username",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "profile",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "picture",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "website",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "email",
;         "Required": true,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "Boolean",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "email_verified",
;         "Required": false
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "gender",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "birthdate",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "10",
;           "MinLength": "10"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "zoneinfo",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "locale",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "phone_number",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "Boolean",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "phone_number_verified",
;         "Required": false
;       },
;       {
;         "AttributeDataType": "String",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "address",
;         "Required": false,
;         "StringAttributeConstraints": {
;           "MaxLength": "2048",
;           "MinLength": "0"
;         }
;       },
;       {
;         "AttributeDataType": "Number",
;         "DeveloperOnlyAttribute": false,
;         "Mutable": true,
;         "Name": "updated_at",
;         "NumberAttributeConstraints": {
;           "MinValue": "0"
;         },
;         "Required": false
;       }
;     ],
;     "SmsAuthenticationMessage": "Your verification code is {####}. ",
;     "SmsConfiguration": {
;       "ExternalId": "94b17737-216b-4cf7-a29e-17e990e91300",
;       "SnsCallerArn": "arn:aws:iam::954491834127:role/service-role/chilkat-SMS-Role"
;     },
;     "SmsVerificationMessage": "Your verification code is {####}. ",
;     "UserPoolTags": {
;       "sampleUserPoolTag": "test"
;     },
;     "UsernameConfiguration": {
;       "CaseSensitive": false
;     },
;     "VerificationMessageTemplate": {
;       "DefaultEmailOption": "CONFIRM_WITH_CODE",
;       "EmailMessage": "Your verification code is {####}. ",
;       "EmailSubject": "Your verification code",
;       "SmsMessage": "Your verification code is {####}. "
;     }
;   }
; }

Local $sName
Local $iPriority
Local $strVal
Local $sAttributeDataType
Local $bDeveloperOnlyAttribute
Local $bMutable
Local $bRequired
Local $sStringAttributeConstraintsMaxLength
Local $sStringAttributeConstraintsMinLength
Local $sNumberAttributeConstraintsMinValue

Local $bUserPoolAdminCreateUserConfigAllowAdminCreateUserOnly = $oJsonResponse.BoolOf("UserPool.AdminCreateUserConfig.AllowAdminCreateUserOnly")
Local $sUserPoolAdminCreateUserConfigInviteMessageTemplateEmailMessage = $oJsonResponse.StringOf("UserPool.AdminCreateUserConfig.InviteMessageTemplate.EmailMessage")
Local $sUserPoolAdminCreateUserConfigInviteMessageTemplateEmailSubject = $oJsonResponse.StringOf("UserPool.AdminCreateUserConfig.InviteMessageTemplate.EmailSubject")
Local $sUserPoolAdminCreateUserConfigInviteMessageTemplateSMSMessage = $oJsonResponse.StringOf("UserPool.AdminCreateUserConfig.InviteMessageTemplate.SMSMessage")
Local $iUserPoolAdminCreateUserConfigUnusedAccountValidityDays = $oJsonResponse.IntOf("UserPool.AdminCreateUserConfig.UnusedAccountValidityDays")
Local $sUserPoolArn = $oJsonResponse.StringOf("UserPool.Arn")
Local $sUserPoolCreationDate = $oJsonResponse.StringOf("UserPool.CreationDate")
Local $sUserPoolEmailConfigurationEmailSendingAccount = $oJsonResponse.StringOf("UserPool.EmailConfiguration.EmailSendingAccount")
Local $sUserPoolEmailConfigurationFrom = $oJsonResponse.StringOf("UserPool.EmailConfiguration.From")
Local $sUserPoolEmailConfigurationReplyToEmailAddress = $oJsonResponse.StringOf("UserPool.EmailConfiguration.ReplyToEmailAddress")
Local $sUserPoolEmailConfigurationSourceArn = $oJsonResponse.StringOf("UserPool.EmailConfiguration.SourceArn")
Local $sUserPoolEmailVerificationMessage = $oJsonResponse.StringOf("UserPool.EmailVerificationMessage")
Local $sUserPoolEmailVerificationSubject = $oJsonResponse.StringOf("UserPool.EmailVerificationSubject")
Local $iUserPoolEstimatedNumberOfUsers = $oJsonResponse.IntOf("UserPool.EstimatedNumberOfUsers")
Local $sUserPoolId = $oJsonResponse.StringOf("UserPool.Id")
Local $sUserPoolLastModifiedDate = $oJsonResponse.StringOf("UserPool.LastModifiedDate")
Local $sUserPoolMfaConfiguration = $oJsonResponse.StringOf("UserPool.MfaConfiguration")
Local $sUserPoolName = $oJsonResponse.StringOf("UserPool.Name")
Local $iUserPoolPoliciesPasswordPolicyMinimumLength = $oJsonResponse.IntOf("UserPool.Policies.PasswordPolicy.MinimumLength")
Local $bUserPoolPoliciesPasswordPolicyRequireLowercase = $oJsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireLowercase")
Local $bUserPoolPoliciesPasswordPolicyRequireNumbers = $oJsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireNumbers")
Local $bUserPoolPoliciesPasswordPolicyRequireSymbols = $oJsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireSymbols")
Local $bUserPoolPoliciesPasswordPolicyRequireUppercase = $oJsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireUppercase")
Local $iUserPoolPoliciesPasswordPolicyTemporaryPasswordValidityDays = $oJsonResponse.IntOf("UserPool.Policies.PasswordPolicy.TemporaryPasswordValidityDays")
Local $sUserPoolSmsAuthenticationMessage = $oJsonResponse.StringOf("UserPool.SmsAuthenticationMessage")
Local $sUserPoolSmsConfigurationExternalId = $oJsonResponse.StringOf("UserPool.SmsConfiguration.ExternalId")
Local $sUserPoolSmsConfigurationSnsCallerArn = $oJsonResponse.StringOf("UserPool.SmsConfiguration.SnsCallerArn")
Local $sUserPoolSmsVerificationMessage = $oJsonResponse.StringOf("UserPool.SmsVerificationMessage")
Local $sUserPoolUserPoolTagsSampleUserPoolTag = $oJsonResponse.StringOf("UserPool.UserPoolTags.sampleUserPoolTag")
Local $bUserPoolUsernameConfigurationCaseSensitive = $oJsonResponse.BoolOf("UserPool.UsernameConfiguration.CaseSensitive")
Local $sUserPoolVerificationMessageTemplateDefaultEmailOption = $oJsonResponse.StringOf("UserPool.VerificationMessageTemplate.DefaultEmailOption")
Local $sUserPoolVerificationMessageTemplateEmailMessage = $oJsonResponse.StringOf("UserPool.VerificationMessageTemplate.EmailMessage")
Local $sUserPoolVerificationMessageTemplateEmailSubject = $oJsonResponse.StringOf("UserPool.VerificationMessageTemplate.EmailSubject")
Local $sUserPoolVerificationMessageTemplateSmsMessage = $oJsonResponse.StringOf("UserPool.VerificationMessageTemplate.SmsMessage")

Local $i = 0
Local $iCount_i = $oJsonResponse.SizeOfArray("UserPool.AccountRecoverySetting.RecoveryMechanisms")
While $i < $iCount_i
    $oJsonResponse.I = $i
    $sName = $oJsonResponse.StringOf("UserPool.AccountRecoverySetting.RecoveryMechanisms[i].Name")
    $iPriority = $oJsonResponse.IntOf("UserPool.AccountRecoverySetting.RecoveryMechanisms[i].Priority")
    $i = $i + 1
Wend

$i = 0
$iCount_i = $oJsonResponse.SizeOfArray("UserPool.AutoVerifiedAttributes")
While $i < $iCount_i
    $oJsonResponse.I = $i
    $strVal = $oJsonResponse.StringOf("UserPool.AutoVerifiedAttributes[i]")
    $i = $i + 1
Wend

$i = 0
$iCount_i = $oJsonResponse.SizeOfArray("UserPool.SchemaAttributes")
While $i < $iCount_i
    $oJsonResponse.I = $i
    $sAttributeDataType = $oJsonResponse.StringOf("UserPool.SchemaAttributes[i].AttributeDataType")
    $bDeveloperOnlyAttribute = $oJsonResponse.BoolOf("UserPool.SchemaAttributes[i].DeveloperOnlyAttribute")
    $bMutable = $oJsonResponse.BoolOf("UserPool.SchemaAttributes[i].Mutable")
    $sName = $oJsonResponse.StringOf("UserPool.SchemaAttributes[i].Name")
    $bRequired = $oJsonResponse.BoolOf("UserPool.SchemaAttributes[i].Required")
    $sStringAttributeConstraintsMaxLength = $oJsonResponse.StringOf("UserPool.SchemaAttributes[i].StringAttributeConstraints.MaxLength")
    $sStringAttributeConstraintsMinLength = $oJsonResponse.StringOf("UserPool.SchemaAttributes[i].StringAttributeConstraints.MinLength")
    $sNumberAttributeConstraintsMinValue = $oJsonResponse.StringOf("UserPool.SchemaAttributes[i].NumberAttributeConstraints.MinValue")
    $i = $i + 1
Wend