Sample code for 30+ languages & platforms
Visual Basic 6.0

Amazon Cognito - Describe User Pool

See more Amazon Cognito Examples

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

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
Dim success As Long
success = 0

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

Dim rest As New ChilkatRest

Dim authAws As New ChilkatAuthAws
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 Long
bTls = 1
Dim port As Long
port = 443
Dim bAutoReconnect As Long
bAutoReconnect = 1
' Use the same region as specified above.
success = rest.Connect("cognito-idp.us-west-2.amazonaws.com",port,bTls,bAutoReconnect)
If (success <> 1) Then
    Debug.Print "ConnectFailReason: " & rest.ConnectFailReason
    Debug.Print rest.LastErrorText
    Exit Sub
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 ChilkatJsonObject
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 ChilkatStringBuilder
success = json.EmitSb(sbRequestBody)
Dim sbResponseBody As New ChilkatStringBuilder
success = rest.FullRequestSb("POST","/",sbRequestBody,sbResponseBody)
If (success <> 1) Then
    Debug.Print rest.LastErrorText
    Exit Sub
End If

Dim respStatusCode As Long
respStatusCode = rest.ResponseStatusCode
Debug.Print "response status code = " & respStatusCode
If (respStatusCode <> 200) Then
    Debug.Print "Response Status Code = " & respStatusCode
    Debug.Print "Response Header:"
    Debug.Print rest.ResponseHeader
    Debug.Print "Response Body:"
    Debug.Print sbResponseBody.GetAsString()
    Exit Sub
End If

Dim jsonResponse As New ChilkatJsonObject
success = jsonResponse.LoadSb(sbResponseBody)

jsonResponse.EmitCompact = 0
Debug.Print 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 Long
Dim strVal As String
Dim AttributeDataType As String
Dim DeveloperOnlyAttribute As Long
Dim Mutable As Long
Dim Required As Long
Dim StringAttributeConstraintsMaxLength As String
Dim StringAttributeConstraintsMinLength As String
Dim NumberAttributeConstraintsMinValue As String

Dim UserPoolAdminCreateUserConfigAllowAdminCreateUserOnly As Long
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 Long
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 Long
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 Long
UserPoolPoliciesPasswordPolicyMinimumLength = jsonResponse.IntOf("UserPool.Policies.PasswordPolicy.MinimumLength")
Dim UserPoolPoliciesPasswordPolicyRequireLowercase As Long
UserPoolPoliciesPasswordPolicyRequireLowercase = jsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireLowercase")
Dim UserPoolPoliciesPasswordPolicyRequireNumbers As Long
UserPoolPoliciesPasswordPolicyRequireNumbers = jsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireNumbers")
Dim UserPoolPoliciesPasswordPolicyRequireSymbols As Long
UserPoolPoliciesPasswordPolicyRequireSymbols = jsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireSymbols")
Dim UserPoolPoliciesPasswordPolicyRequireUppercase As Long
UserPoolPoliciesPasswordPolicyRequireUppercase = jsonResponse.BoolOf("UserPool.Policies.PasswordPolicy.RequireUppercase")
Dim UserPoolPoliciesPasswordPolicyTemporaryPasswordValidityDays As Long
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 Long
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 Long
i = 0
Dim count_i As Long
count_i = jsonResponse.SizeOfArray("UserPool.AccountRecoverySetting.RecoveryMechanisms")
Do 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
Loop

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

i = 0
count_i = jsonResponse.SizeOfArray("UserPool.SchemaAttributes")
Do 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
Loop