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