Updated on 2022-08-16 GMT+08:00

Creating a User

Function

This API is used to create a user under a domain.

URI

POST /v3/users

Request Parameters

  • Parameters in the request header

    Parameter

    Mandatory

    Type

    Description

    Content-Type

    Yes

    String

    Fill application/json;charset=utf8 in this field.

    X-Auth-Token

    Yes

    String

    Authenticated token with the Security Administrator permission.

  • Parameters in the request body

    Parameter

    Mandatory

    Type

    Description

    name

    Yes

    String

    A username with 5 to 32 characters. The username can contain special characters, but only hyphens (-), underscores (_), and spaces are allowed. It cannot start with a digit.

    domain_id

    No

    String

    ID of the domain where a user is located.

    enabled

    No

    Boolean

    Whether a user is enabled.

    The value can be true or false. true indicates the user is enabled and false indicates the user is not enabled. The default value is true.

    password

    No

    String

    Password of the user. The password must meet the following requirements:
    • Must contain at least two of the following character types: uppercase letters, lowercase letters, digits, and special characters.
    • Cannot be the username or the username spelled backwards.
    • Cannot contain the user's mobile phone number or email address.
    • Must comply with the password policies under Account Settings.

    default_project_id

    No

    String

    Default project ID of a user.

    description

    No

    String

    Description of the user.

  • Example request
    1. Create the temporary file ${filename}.json based on the following template. ${filename} indicates the temporary file name, which is user-defined.
    {
        "user": {
            "default_project_id": "acf2ffabba974fae8f30378ffde2cfa6",
            "domain_id": "88b16b6440684467b8825d7d96e154d8",
            "enabled": true,
            "name": "jamesdoe",
            "password": "********"
        }
    }
    2. Run the following command under the directory storing the ${filename}.json file.
    curl -i -k -H 'Accept:application/json' -H 'Content-Type:application/json;charset=utf8' -H "X-Auth-Token:$token" -X POST -d @${filename}.json https://sample.domain.com/v3/users
    3. Run the following command under the directory of the ${filename}.json file to delete the ${filename}.json file.
    rm ${filename}.json

Response Parameters

  • Parameters in the response body

    Parameter

    Mandatory

    Type

    Description

    user

    Yes

    JSON object

    User object.

  • Description for the user format

    Parameter

    Mandatory

    Type

    Description

    enabled

    Yes

    Boolean

    Whether a user is enabled.

    The value can be true or false. true indicates the user is enabled and false indicates the user is not enabled. The default value is true.

    id

    Yes

    String

    User ID.

    domain_id

    Yes

    String

    ID of the domain where a user is located.

    name

    Yes

    String

    Username.

    links

    Yes

    JSON object

    User resource link.

    default_project_id

    No

    String

    Default project ID of a user.

    password_expires_at

    Yes

    String

    UTC when the password will expire. null indicates that the password will not expire.

  • Example response
    {
        "user": {
            "name": "jamesdoe",
            "links": {
                "self": "https://sample.domain.com/v3/users/614d1d2fb86940faab8f350bf1b9dbac"
            },
            "domain_id": "88b16b6440684467b8825d7d96e154d8",
            "enabled": true,
            "id": "614d1d2fb86940faab8f350bf1b9dbac",
            "default_project_id": "acf2ffabba974fae8f30378ffde2cfa6",
            "password_expires_at": null
        }
    }

Status Codes

Status Code

Description

201

The user is successfully created.

400

The server failed to process the request.

401

Authentication failed.

403

Access denied.

404

The requested resource cannot be found.

405

The method specified in the request is not allowed for the requested resource.

409

A resource conflict occurs.

413

The request entity is too large.

500

Internal server error.

503

Service unavailable.