Sample code for 30+ languages & platforms
Xojo Plugin

Amazon Cognito - Describe User Pool

See more Amazon Cognito Examples

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

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

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

Dim rest As New Chilkat.Rest

Dim authAws As New Chilkat.AuthAws
authAws.AccessKey = "AWS_ACCESS_KEY"
authAws.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.)
authAws.Region = "us-west-2"
authAws.ServiceName = "cognito-idp"
// SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
success = rest.SetAuthAws(authAws)

// URL: https://cognito-idp.us-west-2.amazonaws.com/
Dim bTls As Boolean
bTls = True
Dim port As Int32
port = 443
Dim bAutoReconnect As Boolean
bAutoReconnect = True
// Use the same region as specified above.
success = rest.Connect("cognito-idp.us-west-2.amazonaws.com",port,bTls,bAutoReconnect)
If (success <> True) Then
    System.DebugLog("ConnectFailReason: " + Str(rest.ConnectFailReason))
    System.DebugLog(rest.LastErrorText)
    Return
End If

// 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.

Dim json As New Chilkat.JsonObject
success = json.UpdateString("UserPoolId","us-west-2_yt6WzO3SA")

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

Dim sbRequestBody As New Chilkat.StringBuilder
success = json.EmitSb(sbRequestBody)
Dim sbResponseBody As New Chilkat.StringBuilder
success = rest.FullRequestSb("POST","/",sbRequestBody,sbResponseBody)
If (success <> True) Then
    System.DebugLog(rest.LastErrorText)
    Return
End If

Dim respStatusCode As Int32
respStatusCode = rest.ResponseStatusCode
System.DebugLog("response status code = " + Str(respStatusCode))
If (respStatusCode <> 200) Then
    System.DebugLog("Response Status Code = " + Str(respStatusCode))
    System.DebugLog("Response Header:")
    System.DebugLog(rest.ResponseHeader)
    System.DebugLog("Response Body:")
    System.DebugLog(sbResponseBody.GetAsString())
    Return
End If

Dim jsonResponse As New Chilkat.JsonObject
success = jsonResponse.LoadSb(sbResponseBody)

jsonResponse.EmitCompact = False
System.DebugLog(jsonResponse.Emit())

// 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 {####}. "
//     }
//   }
// }

Dim Name As String
Dim Priority As Int32
Dim strVal As String
Dim AttributeDataType As String
Dim DeveloperOnlyAttribute As Boolean
Dim Mutable As Boolean
Dim Required As Boolean
Dim StringAttributeConstraintsMaxLength As String
Dim StringAttributeConstraintsMinLength As String
Dim NumberAttributeConstraintsMinValue As String

Dim UserPoolAdminCreateUserConfigAllowAdminCreateUserOnly As Boolean
UserPoolAdminCreateUserConfigAllowAdminCreateUserOnly = jsonResponse.BoolOf("UserPool.AdminCreateUserConfig.AllowAdminCreateUserOnly")
Dim UserPoolAdminCreateUserConfigInviteMessageTemplateEmailMessage As String
UserPoolAdminCreateUserConfigInviteMessageTemplateEmailMessage = jsonResponse.StringOf("UserPool.AdminCreateUserConfig.InviteMessageTemplate.EmailMessage")
Dim UserPoolAdminCreateUserConfigInviteMessageTemplateEmailSubject As String
UserPoolAdminCreateUserConfigInviteMessageTemplateEmailSubject = jsonResponse.StringOf("UserPool.AdminCreateUserConfig.InviteMessageTemplate.EmailSubject")
Dim UserPoolAdminCreateUserConfigInviteMessageTemplateSMSMessage As String
UserPoolAdminCreateUserConfigInviteMessageTemplateSMSMessage = jsonResponse.StringOf("UserPool.AdminCreateUserConfig.InviteMessageTemplate.SMSMessage")
Dim UserPoolAdminCreateUserConfigUnusedAccountValidityDays As Int32
UserPoolAdminCreateUserConfigUnusedAccountValidityDays = jsonResponse.IntOf("UserPool.AdminCreateUserConfig.UnusedAccountValidityDays")
Dim UserPoolArn As String
UserPoolArn = jsonResponse.StringOf("UserPool.Arn")
Dim UserPoolCreationDate As String
UserPoolCreationDate = jsonResponse.StringOf("UserPool.CreationDate")
Dim UserPoolEmailConfigurationEmailSendingAccount As String
UserPoolEmailConfigurationEmailSendingAccount = jsonResponse.StringOf("UserPool.EmailConfiguration.EmailSendingAccount")
Dim UserPoolEmailConfigurationFrom As String
UserPoolEmailConfigurationFrom = jsonResponse.StringOf("UserPool.EmailConfiguration.From")
Dim UserPoolEmailConfigurationReplyToEmailAddress As String
UserPoolEmailConfigurationReplyToEmailAddress = jsonResponse.StringOf("UserPool.EmailConfiguration.ReplyToEmailAddress")
Dim UserPoolEmailConfigurationSourceArn As String
UserPoolEmailConfigurationSourceArn = jsonResponse.StringOf("UserPool.EmailConfiguration.SourceArn")
Dim UserPoolEmailVerificationMessage As String
UserPoolEmailVerificationMessage = jsonResponse.StringOf("UserPool.EmailVerificationMessage")
Dim UserPoolEmailVerificationSubject As String
UserPoolEmailVerificationSubject = jsonResponse.StringOf("UserPool.EmailVerificationSubject")
Dim UserPoolEstimatedNumberOfUsers As Int32
UserPoolEstimatedNumberOfUsers = jsonResponse.IntOf("UserPool.EstimatedNumberOfUsers")
Dim UserPoolId As String
UserPoolId = jsonResponse.StringOf("UserPool.Id")
Dim UserPoolLastModifiedDate As String
UserPoolLastModifiedDate = jsonResponse.StringOf("UserPool.LastModifiedDate")
Dim UserPoolMfaConfiguration As String
UserPoolMfaConfiguration = jsonResponse.StringOf("UserPool.MfaConfiguration")
Dim UserPoolName As String
UserPoolName = jsonResponse.StringOf("UserPool.Name")
Dim UserPoolPoliciesPasswordPolicyMinimumLength As Int32
UserPoolPoliciesPasswordPolicyMinimumLength = jsonResponse.IntOf("UserPool.Policies.PasswordPolicy.MinimumLength")
Dim UserPoolPoliciesPasswordPolicyRequireLowercase As Boolean
UserPoolPoliciesPasswordPolicyRequireLowercase = jsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireLowercase")
Dim UserPoolPoliciesPasswordPolicyRequireNumbers As Boolean
UserPoolPoliciesPasswordPolicyRequireNumbers = jsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireNumbers")
Dim UserPoolPoliciesPasswordPolicyRequireSymbols As Boolean
UserPoolPoliciesPasswordPolicyRequireSymbols = jsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireSymbols")
Dim UserPoolPoliciesPasswordPolicyRequireUppercase As Boolean
UserPoolPoliciesPasswordPolicyRequireUppercase = jsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireUppercase")
Dim UserPoolPoliciesPasswordPolicyTemporaryPasswordValidityDays As Int32
UserPoolPoliciesPasswordPolicyTemporaryPasswordValidityDays = jsonResponse.IntOf("UserPool.Policies.PasswordPolicy.TemporaryPasswordValidityDays")
Dim UserPoolSmsAuthenticationMessage As String
UserPoolSmsAuthenticationMessage = jsonResponse.StringOf("UserPool.SmsAuthenticationMessage")
Dim UserPoolSmsConfigurationExternalId As String
UserPoolSmsConfigurationExternalId = jsonResponse.StringOf("UserPool.SmsConfiguration.ExternalId")
Dim UserPoolSmsConfigurationSnsCallerArn As String
UserPoolSmsConfigurationSnsCallerArn = jsonResponse.StringOf("UserPool.SmsConfiguration.SnsCallerArn")
Dim UserPoolSmsVerificationMessage As String
UserPoolSmsVerificationMessage = jsonResponse.StringOf("UserPool.SmsVerificationMessage")
Dim UserPoolUserPoolTagsSampleUserPoolTag As String
UserPoolUserPoolTagsSampleUserPoolTag = jsonResponse.StringOf("UserPool.UserPoolTags.sampleUserPoolTag")
Dim UserPoolUsernameConfigurationCaseSensitive As Boolean
UserPoolUsernameConfigurationCaseSensitive = jsonResponse.BoolOf("UserPool.UsernameConfiguration.CaseSensitive")
Dim UserPoolVerificationMessageTemplateDefaultEmailOption As String
UserPoolVerificationMessageTemplateDefaultEmailOption = jsonResponse.StringOf("UserPool.VerificationMessageTemplate.DefaultEmailOption")
Dim UserPoolVerificationMessageTemplateEmailMessage As String
UserPoolVerificationMessageTemplateEmailMessage = jsonResponse.StringOf("UserPool.VerificationMessageTemplate.EmailMessage")
Dim UserPoolVerificationMessageTemplateEmailSubject As String
UserPoolVerificationMessageTemplateEmailSubject = jsonResponse.StringOf("UserPool.VerificationMessageTemplate.EmailSubject")
Dim UserPoolVerificationMessageTemplateSmsMessage As String
UserPoolVerificationMessageTemplateSmsMessage = jsonResponse.StringOf("UserPool.VerificationMessageTemplate.SmsMessage")

Dim i As Int32
i = 0
Dim count_i As Int32
count_i = jsonResponse.SizeOfArray("UserPool.AccountRecoverySetting.RecoveryMechanisms")
While i < count_i
    jsonResponse.I = i
    Name = jsonResponse.StringOf("UserPool.AccountRecoverySetting.RecoveryMechanisms[i].Name")
    Priority = jsonResponse.IntOf("UserPool.AccountRecoverySetting.RecoveryMechanisms[i].Priority")
    i = i + 1
Wend

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

i = 0
count_i = jsonResponse.SizeOfArray("UserPool.SchemaAttributes")
While i < count_i
    jsonResponse.I = i
    AttributeDataType = jsonResponse.StringOf("UserPool.SchemaAttributes[i].AttributeDataType")
    DeveloperOnlyAttribute = jsonResponse.BoolOf("UserPool.SchemaAttributes[i].DeveloperOnlyAttribute")
    Mutable = jsonResponse.BoolOf("UserPool.SchemaAttributes[i].Mutable")
    Name = jsonResponse.StringOf("UserPool.SchemaAttributes[i].Name")
    Required = jsonResponse.BoolOf("UserPool.SchemaAttributes[i].Required")
    StringAttributeConstraintsMaxLength = jsonResponse.StringOf("UserPool.SchemaAttributes[i].StringAttributeConstraints.MaxLength")
    StringAttributeConstraintsMinLength = jsonResponse.StringOf("UserPool.SchemaAttributes[i].StringAttributeConstraints.MinLength")
    NumberAttributeConstraintsMinValue = jsonResponse.StringOf("UserPool.SchemaAttributes[i].NumberAttributeConstraints.MinValue")
    i = i + 1
Wend