abdoo_salem
abdoo_salem

Reputation: 332

admin-create-user command doesn't work properly

I'm trying to run admin-create-user cli command as shown in the official doc, but it doesn't seems to run properly.

I don't get all attributes created event though they were in the command. I always get only the last attribute typed in the command.

am I doing something wrong? is there any solution?

aws cognito-idp admin-create-user --user-pool-id us-west-2_aaaaaaaaa --username [email protected] --user-attributes=Name=email,[email protected],Name=phone_number,Value="+15555551212" --message-action SUPPRESS

and I'm getting

{
    "User": {
        "Username": "[email protected]",
        "Enabled": true,
        "UserStatus": "FORCE_CHANGE_PASSWORD",
        "UserCreateDate": 1566470568.864,
        "UserLastModifiedDate": 1566470568.864,
        "Attributes": [
            {
                "Name": "sub",
                "Value": "5dac8ce5-2997-4185-b862-86cf15aede77"
            },
            {
                "Name": "phone_number",
                "Value": "+15555551212"
            }
        ]
    }
}

instead of

{
  "User": {
      "Username": "7325c1de-b05b-4f84-b321-9adc6e61f4a2",
      "Enabled": true,
      "UserStatus": "FORCE_CHANGE_PASSWORD",
      "UserCreateDate": 1548099495.428,
      "UserLastModifiedDate": 1548099495.428,
      "Attributes": [
          {
              "Name": "sub",
              "Value": "7325c1de-b05b-4f84-b321-9adc6e61f4a2"
          },
          {
              "Name": "phone_number",
              "Value": "+15555551212"
          },
          {
              "Name": "email",
              "Value": "[email protected]"
          }
      ]
  }
}

Upvotes: 1

Views: 2799

Answers (1)

hephalump
hephalump

Reputation: 6164

The shorthand notation that you're using, as referenced in the docs here, does indeed seem to be producing the results you are receiving.

A quick way around this issue is to change to using JSON format for the user-attributes option. If you modify the user-attributes option to use JSON, your command will look like this:

aws cognito-idp admin-create-user --user-pool-id us-west-2_aaaaaaaaa --username a567 --user-attributes '[{"Name": "email","Value": "[email protected]"},{"Name": "phone_number","Value": "+15555551212"}]' --message-action SUPPRESS

Which, when executed, produces this output:

{
    "User": {
        "Username": "a567", 
        "Enabled": true, 
        "UserStatus": "FORCE_CHANGE_PASSWORD", 
        "UserCreateDate": 1566489693.408, 
        "UserLastModifiedDate": 1566489693.408, 
        "Attributes": [
            {
                "Name": "sub", 
                "Value": "f6ff3e05-5f15-4a53-a45f-52e939b941fd"
            }, 
            {
                "Name": "phone_number", 
                "Value": "+15555551212"
            }, 
            {
                "Name": "email", 
                "Value": "[email protected]"
            }
        ]
    }
}

Upvotes: 9

Related Questions