Sample code for 30+ languages & platforms
Dart

Amazon Cognito - Describe User Pool

See more Amazon Cognito Examples

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

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

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

  final rest = CkRest();

  final authAws = CkAuthAws();
  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
  rest.setAuthAws(authAws);

  // URL: https://cognito-idp.us-west-2.amazonaws.com/
  final bTls = true;
  final port = 443;
  final bAutoReconnect = true;
  // Use the same region as specified above.
  try {
    rest.connect('cognito-idp.us-west-2.amazonaws.com', port, bTls, bAutoReconnect);
  } on ChilkatException catch (e) {
    print('ConnectFailReason: ${rest.connectFailReason}');
    print(e.lastErrorText);
    return;
  }

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

  final json = CkJsonObject();
  json.updateString('UserPoolId', 'us-west-2_yt6WzO3SA');

  rest.addHeader('Content-Type', 'application/x-amz-json-1.0');
  rest.addHeader('X-Amz-Target', 'AWSCognitoIdentityProviderService.DescribeUserPool');
  rest.addHeader('Accept-Encoding', 'identity');

  final sbRequestBody = CkStringBuilder();
  json.emitSb(sbRequestBody);
  final sbResponseBody = CkStringBuilder();
  try {
    rest.fullRequestSb('POST', '/', sbRequestBody, sbResponseBody);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final respStatusCode = rest.responseStatusCode;
  print('response status code = $respStatusCode');
  if (respStatusCode != 200) {
    print('Response Status Code = $respStatusCode');
    print('Response Header:');
    print(rest.responseHeader);
    print('Response Body:');
    print(sbResponseBody.getAsString());
    return;
  }

  final jsonResponse = CkJsonObject();
  jsonResponse.loadSb(sbResponseBody);

  jsonResponse.emitCompact = false;
  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 {####}. "
  //     }
  //   }
  // }

  var name = '';
  var priority = 0;
  var strVal = '';
  var attributeDataType = '';
  var stringAttributeConstraintsMaxLength = '';
  var stringAttributeConstraintsMinLength = '';
  var numberAttributeConstraintsMinValue = '';

  final userPoolAdminCreateUserConfigInviteMessageTemplateEmailMessage = jsonResponse.stringOf('UserPool.AdminCreateUserConfig.InviteMessageTemplate.EmailMessage');
  final userPoolAdminCreateUserConfigInviteMessageTemplateEmailSubject = jsonResponse.stringOf('UserPool.AdminCreateUserConfig.InviteMessageTemplate.EmailSubject');
  final userPoolAdminCreateUserConfigInviteMessageTemplateSMSMessage = jsonResponse.stringOf('UserPool.AdminCreateUserConfig.InviteMessageTemplate.SMSMessage');
  final userPoolAdminCreateUserConfigUnusedAccountValidityDays = jsonResponse.intOf('UserPool.AdminCreateUserConfig.UnusedAccountValidityDays');
  final userPoolArn = jsonResponse.stringOf('UserPool.Arn');
  final userPoolCreationDate = jsonResponse.stringOf('UserPool.CreationDate');
  final userPoolEmailConfigurationEmailSendingAccount = jsonResponse.stringOf('UserPool.EmailConfiguration.EmailSendingAccount');
  final userPoolEmailConfigurationFrom = jsonResponse.stringOf('UserPool.EmailConfiguration.From');
  final userPoolEmailConfigurationReplyToEmailAddress = jsonResponse.stringOf('UserPool.EmailConfiguration.ReplyToEmailAddress');
  final userPoolEmailConfigurationSourceArn = jsonResponse.stringOf('UserPool.EmailConfiguration.SourceArn');
  final userPoolEmailVerificationMessage = jsonResponse.stringOf('UserPool.EmailVerificationMessage');
  final userPoolEmailVerificationSubject = jsonResponse.stringOf('UserPool.EmailVerificationSubject');
  final userPoolEstimatedNumberOfUsers = jsonResponse.intOf('UserPool.EstimatedNumberOfUsers');
  final userPoolId = jsonResponse.stringOf('UserPool.Id');
  final userPoolLastModifiedDate = jsonResponse.stringOf('UserPool.LastModifiedDate');
  final userPoolMfaConfiguration = jsonResponse.stringOf('UserPool.MfaConfiguration');
  final userPoolName = jsonResponse.stringOf('UserPool.Name');
  final userPoolPoliciesPasswordPolicyMinimumLength = jsonResponse.intOf('UserPool.Policies.PasswordPolicy.MinimumLength');
  final userPoolPoliciesPasswordPolicyTemporaryPasswordValidityDays = jsonResponse.intOf('UserPool.Policies.PasswordPolicy.TemporaryPasswordValidityDays');
  final userPoolSmsAuthenticationMessage = jsonResponse.stringOf('UserPool.SmsAuthenticationMessage');
  final userPoolSmsConfigurationExternalId = jsonResponse.stringOf('UserPool.SmsConfiguration.ExternalId');
  final userPoolSmsConfigurationSnsCallerArn = jsonResponse.stringOf('UserPool.SmsConfiguration.SnsCallerArn');
  final userPoolSmsVerificationMessage = jsonResponse.stringOf('UserPool.SmsVerificationMessage');
  final userPoolUserPoolTagsSampleUserPoolTag = jsonResponse.stringOf('UserPool.UserPoolTags.sampleUserPoolTag');
  final userPoolVerificationMessageTemplateDefaultEmailOption = jsonResponse.stringOf('UserPool.VerificationMessageTemplate.DefaultEmailOption');
  final userPoolVerificationMessageTemplateEmailMessage = jsonResponse.stringOf('UserPool.VerificationMessageTemplate.EmailMessage');
  final userPoolVerificationMessageTemplateEmailSubject = jsonResponse.stringOf('UserPool.VerificationMessageTemplate.EmailSubject');
  final userPoolVerificationMessageTemplateSmsMessage = jsonResponse.stringOf('UserPool.VerificationMessageTemplate.SmsMessage');

  var i = 0;
  var countI = jsonResponse.sizeOfArray('UserPool.AccountRecoverySetting.RecoveryMechanisms');
  while (i < countI) {
    jsonResponse.i = i;
    name = jsonResponse.stringOf('UserPool.AccountRecoverySetting.RecoveryMechanisms[i].Name');
    priority = jsonResponse.intOf('UserPool.AccountRecoverySetting.RecoveryMechanisms[i].Priority');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('UserPool.AutoVerifiedAttributes');
  while (i < countI) {
    jsonResponse.i = i;
    strVal = jsonResponse.stringOf('UserPool.AutoVerifiedAttributes[i]');
    i++;
  }

  i = 0;
  countI = jsonResponse.sizeOfArray('UserPool.SchemaAttributes');
  while (i < countI) {
    jsonResponse.i = i;
    attributeDataType = jsonResponse.stringOf('UserPool.SchemaAttributes[i].AttributeDataType');
    jsonResponse.boolOf('UserPool.SchemaAttributes[i].DeveloperOnlyAttribute');
    jsonResponse.boolOf('UserPool.SchemaAttributes[i].Mutable');
    name = jsonResponse.stringOf('UserPool.SchemaAttributes[i].Name');
    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++;
  }
}