Sample code for 30+ languages & platforms
Go

Amazon Cognito - Describe User Pool

See more Amazon Cognito Examples

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

Chilkat Go Downloads

Go
    success := false

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

    rest := chilkat.NewRest()

    authAws := chilkat.NewAuthAws()
    authAws.SetAccessKey("AWS_ACCESS_KEY")
    authAws.SetSecretKey("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.SetRegion("us-west-2")
    authAws.SetServiceName("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/
    bTls := true
    port := 443
    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 {
        fmt.Println("ConnectFailReason: ", rest.ConnectFailReason())
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        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.

    json := chilkat.NewJsonObject()
    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")

    sbRequestBody := chilkat.NewStringBuilder()
    json.EmitSb(sbRequestBody)
    sbResponseBody := chilkat.NewStringBuilder()
    success = rest.FullRequestSb("POST","/",sbRequestBody,sbResponseBody)
    if success != true {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        json.DisposeJsonObject()
        sbRequestBody.DisposeStringBuilder()
        sbResponseBody.DisposeStringBuilder()
        return
    }

    respStatusCode := rest.ResponseStatusCode()
    fmt.Println("response status code = ", respStatusCode)
    if respStatusCode != 200 {
        fmt.Println("Response Status Code = ", respStatusCode)
        fmt.Println("Response Header:")
        fmt.Println(rest.ResponseHeader())
        fmt.Println("Response Body:")
        fmt.Println(*sbResponseBody.GetAsString())
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        json.DisposeJsonObject()
        sbRequestBody.DisposeStringBuilder()
        sbResponseBody.DisposeStringBuilder()
        return
    }

    jsonResponse := chilkat.NewJsonObject()
    jsonResponse.LoadSb(sbResponseBody)

    jsonResponse.SetEmitCompact(false)
    fmt.Println(*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 *string = new(string)
    var Priority int
    var strVal *string = new(string)
    var AttributeDataType *string = new(string)
    var DeveloperOnlyAttribute bool
    var Mutable bool
    var Required bool
    var StringAttributeConstraintsMaxLength *string = new(string)
    var StringAttributeConstraintsMinLength *string = new(string)
    var NumberAttributeConstraintsMinValue *string = new(string)

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

    i := 0
    count_i := jsonResponse.SizeOfArray("UserPool.AccountRecoverySetting.RecoveryMechanisms")
    for i < count_i {
        jsonResponse.SetI(i)
        Name = jsonResponse.StringOf("UserPool.AccountRecoverySetting.RecoveryMechanisms[i].Name")
        Priority = jsonResponse.IntOf("UserPool.AccountRecoverySetting.RecoveryMechanisms[i].Priority")
        i = i + 1
    }

    i = 0
    count_i = jsonResponse.SizeOfArray("UserPool.AutoVerifiedAttributes")
    for i < count_i {
        jsonResponse.SetI(i)
        strVal = jsonResponse.StringOf("UserPool.AutoVerifiedAttributes[i]")
        i = i + 1
    }

    i = 0
    count_i = jsonResponse.SizeOfArray("UserPool.SchemaAttributes")
    for i < count_i {
        jsonResponse.SetI(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
    }


    rest.DisposeRest()
    authAws.DisposeAuthAws()
    json.DisposeJsonObject()
    sbRequestBody.DisposeStringBuilder()
    sbResponseBody.DisposeStringBuilder()
    jsonResponse.DisposeJsonObject()