Sample code for 30+ languages & platforms
Swift

Amazon Cognito - Admin Create User

See more Amazon Cognito Examples

Creates a new user in the specified user pool.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

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

    let rest = CkoRest()!

    let authAws = CkoAuthAws()!
    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(authProvider: authAws)

    // URL: https://cognito-idp.us-west-2.amazonaws.com/
    var bTls: Bool = true
    var port: Int = 443
    var bAutoReconnect: Bool = true
    // Use the same region as specified above.
    success = rest.connect(hostname: "cognito-idp.us-west-2.amazonaws.com", port: port, tls: bTls, autoReconnect: bAutoReconnect)
    if success != true {
        print("ConnectFailReason: \(rest.connectFailReason.intValue)")
        print("\(rest.lastErrorText!)")
        return
    }

    // Use this online tool to generate code from sample JSON:
    // Generate Code to Create JSON

    // The following JSON is sent in the request body.

    // {
    //     "DesiredDeliveryMediums" : [ "SMS", "EMAIL" ],	
    //     "UserAttributes": [
    //          {
    //            "Name": "phone_number",
    //            "Value": "+16302581871"
    //          },
    //          {
    //            "Name": "email",
    //            "Value": "admin@chilkatsoft.com"
    //          }
    //        ],
    //      "UserPoolId": "us-west-2_yt6WzO3SA",
    //      "Username": "Matt"
    // }
    // 

    let json = CkoJsonObject()!
    json.updateString(jsonPath: "DesiredDeliveryMediums[0]", value: "SMS")
    json.updateString(jsonPath: "DesiredDeliveryMediums[1]", value: "EMAIL")
    json.updateString(jsonPath: "UserAttributes[0].Name", value: "phone_number")
    json.updateString(jsonPath: "UserAttributes[0].Value", value: "+16302581871")
    json.updateString(jsonPath: "UserAttributes[1].Name", value: "email")
    json.updateString(jsonPath: "UserAttributes[1].Value", value: "admin@chilkatsoft.com")
    json.updateString(jsonPath: "UserPoolId", value: "us-west-2_yt6WzO3SA")
    json.updateString(jsonPath: "Username", value: "Matt")

    rest.addHeader(name: "Content-Type", value: "application/x-amz-json-1.0")
    rest.addHeader(name: "X-Amz-Target", value: "AWSCognitoIdentityProviderService.AdminCreateUser")
    rest.addHeader(name: "Accept-Encoding", value: "identity")

    let sbRequestBody = CkoStringBuilder()!
    json.emitSb(sb: sbRequestBody)
    let sbResponseBody = CkoStringBuilder()!
    success = rest.fullRequestSb(httpVerb: "POST", uriPath: "/", requestBody: sbRequestBody, responseBody: sbResponseBody)
    if success != true {
        print("\(rest.lastErrorText!)")
        return
    }

    var respStatusCode: Int = rest.responseStatusCode.intValue
    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
    }

    let jsonResponse = CkoJsonObject()!
    jsonResponse.loadSb(sb: 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

    // {
    //   "User": {
    //     "Attributes": [
    //       {
    //         "Name": "sub",
    //         "Value": "dcd3db0c-32cf-4a33-a6b2-173653f7c0e7"
    //       },
    //       {
    //         "Name": "phone_number",
    //         "Value": "+16302581871"
    //       },
    //       {
    //         "Name": "email",
    //         "Value": "admin@chilkatsoft.com"
    //       }
    //     ],
    //     "Enabled": true,
    //     "UserCreateDate": 1.636407153801E9,
    //     "UserLastModifiedDate": 1.636407153801E9,
    //     "UserStatus": "FORCE_CHANGE_PASSWORD",
    //     "Username": "matt"
    //   }
    // }

    var Name: String?
    var Value: String?

    var UserEnabled: Bool = jsonResponse.bool(of: "User.Enabled")
    var UserUserCreateDate: String? = jsonResponse.string(of: "User.UserCreateDate")
    var UserUserLastModifiedDate: String? = jsonResponse.string(of: "User.UserLastModifiedDate")
    var UserUserStatus: String? = jsonResponse.string(of: "User.UserStatus")
    var UserUsername: String? = jsonResponse.string(of: "User.Username")
    var i: Int = 0
    var count_i: Int = jsonResponse.size(ofArray: "User.Attributes").intValue
    while i < count_i {
        jsonResponse.i = i
        Name = jsonResponse.string(of: "User.Attributes[i].Name")
        Value = jsonResponse.string(of: "User.Attributes[i].Value")
        i = i + 1
    }


}