285 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			285 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Admin User Resource
 | 
						|
 | 
						|
Admin users represent administrative users that are able to query and change
 | 
						|
MaxScale's configuration.
 | 
						|
 | 
						|
## Resource Operations
 | 
						|
 | 
						|
### Get network user
 | 
						|
 | 
						|
```
 | 
						|
GET /v1/users/inet/:name
 | 
						|
```
 | 
						|
 | 
						|
Get a single network user. The The _:name_ in the URI must be a valid network
 | 
						|
user name.
 | 
						|
 | 
						|
#### Response
 | 
						|
 | 
						|
`Status: 200 OK`
 | 
						|
 | 
						|
```javascript
 | 
						|
{
 | 
						|
    "links": {
 | 
						|
        "self": "http://localhost:8989/v1/users/inet/my-user"
 | 
						|
    },
 | 
						|
    "data": {
 | 
						|
        "id": "my-user",
 | 
						|
        "type": "inet",
 | 
						|
        "attributes": {
 | 
						|
            "account": "admin"
 | 
						|
        },
 | 
						|
        "relationships": {
 | 
						|
            "self": "http://localhost:8989/v1/users/inet/my-user"
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Get all network users
 | 
						|
 | 
						|
```
 | 
						|
GET /v1/users/inet
 | 
						|
```
 | 
						|
 | 
						|
Get all network users.
 | 
						|
 | 
						|
#### Response
 | 
						|
 | 
						|
`Status: 200 OK`
 | 
						|
 | 
						|
```javascript
 | 
						|
{
 | 
						|
    "links": {
 | 
						|
        "self": "http://localhost:8989/v1/users/inet"
 | 
						|
    },
 | 
						|
    "data": [
 | 
						|
        {
 | 
						|
            "id": "my-user",
 | 
						|
            "type": "inet",
 | 
						|
            "attributes": {
 | 
						|
                "account": "admin"
 | 
						|
            },
 | 
						|
            "relationships": {
 | 
						|
                "self": "http://localhost:8989/v1/users/inet/my-user"
 | 
						|
            }
 | 
						|
        }
 | 
						|
    ]
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Get enabled UNIX account
 | 
						|
 | 
						|
```
 | 
						|
GET /v1/users/unix/:name
 | 
						|
```
 | 
						|
 | 
						|
Get a single enabled UNIX account. The The _:name_ in the URI must be a valid
 | 
						|
UNIX account name that has been enabled.
 | 
						|
 | 
						|
#### Response
 | 
						|
 | 
						|
`Status: 200 OK`
 | 
						|
 | 
						|
```javascript
 | 
						|
{
 | 
						|
    "links": {
 | 
						|
        "self": "http://localhost:8989/v1/users/unix/maxscale"
 | 
						|
    },
 | 
						|
    "data": {
 | 
						|
        "id": "maxscale",
 | 
						|
        "type": "unix",
 | 
						|
        "attributes": {
 | 
						|
            "account": "basic"
 | 
						|
        },
 | 
						|
        "relationships": {
 | 
						|
            "self": "http://localhost:8989/v1/users/unix/maxscale"
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Get all enabled UNIX accounts
 | 
						|
 | 
						|
```
 | 
						|
GET /v1/users/unix
 | 
						|
```
 | 
						|
 | 
						|
Get all enabled UNIX accounts.
 | 
						|
 | 
						|
#### Response
 | 
						|
 | 
						|
`Status: 200 OK`
 | 
						|
 | 
						|
```javascript
 | 
						|
{
 | 
						|
    "links": {
 | 
						|
        "self": "http://localhost:8989/v1/users/unix"
 | 
						|
    },
 | 
						|
    "data": [
 | 
						|
        {
 | 
						|
            "id": "maxscale",
 | 
						|
            "type": "unix",
 | 
						|
            "attributes": {
 | 
						|
                "account": "admin"
 | 
						|
            },
 | 
						|
            "relationships": {
 | 
						|
                "self": "http://localhost:8989/v1/users/unix/maxscale"
 | 
						|
            }
 | 
						|
        }
 | 
						|
    ]
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Get all users
 | 
						|
 | 
						|
```
 | 
						|
GET /v1/users
 | 
						|
```
 | 
						|
 | 
						|
Get all administrative users. This fetches both network users and local UNIX
 | 
						|
accounts.
 | 
						|
 | 
						|
#### Response
 | 
						|
 | 
						|
`Status: 200 OK`
 | 
						|
 | 
						|
```javascript
 | 
						|
{
 | 
						|
    "links": {
 | 
						|
        "self": "http://localhost:8989/v1/users/"
 | 
						|
    },
 | 
						|
    "data": [ // List of all users
 | 
						|
        {
 | 
						|
            "id": "my-user",
 | 
						|
            "type": "inet", // A network user
 | 
						|
            "attributes": {
 | 
						|
                "account": "admin"
 | 
						|
            },
 | 
						|
            "relationships": {
 | 
						|
                "self": "http://localhost:8989/v1/users/inet/my-user"
 | 
						|
            }
 | 
						|
        },
 | 
						|
        {
 | 
						|
            "id": "maxscale",
 | 
						|
            "type": "unix", // A local UNIX account
 | 
						|
            "attributes": {
 | 
						|
                "account": "admin"
 | 
						|
            },
 | 
						|
            "relationships": {
 | 
						|
                "self": "http://localhost:8989/v1/users/unix/maxscale"
 | 
						|
            }
 | 
						|
        }
 | 
						|
    ]
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Create a network user
 | 
						|
 | 
						|
```
 | 
						|
POST /v1/users/inet
 | 
						|
```
 | 
						|
 | 
						|
Create a new network user. The request body must define at least the
 | 
						|
following fields.
 | 
						|
 | 
						|
* `data.id`
 | 
						|
  * The username
 | 
						|
 | 
						|
* `data.type`
 | 
						|
  * Type of the object, must be `inet`
 | 
						|
 | 
						|
* `data.attributes.password`
 | 
						|
  * The password for this user
 | 
						|
 | 
						|
* `data.attributes.account`
 | 
						|
  * Set to `admin` for administrative users and `basic` to read-only users
 | 
						|
 | 
						|
Here is an example request body defining the network user _my-user_ with the
 | 
						|
password _my-password_ that is allowed to execute only read-only operations.
 | 
						|
 | 
						|
```javascript
 | 
						|
{
 | 
						|
    "data": {
 | 
						|
        "id": "my-user",
 | 
						|
        "type": "inet",
 | 
						|
        "attributes": {
 | 
						|
            "password": "my-password",
 | 
						|
            "account": "basic"
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
#### Response
 | 
						|
 | 
						|
```
 | 
						|
Status: 204 No Content
 | 
						|
```
 | 
						|
 | 
						|
### Enable a UNIX account
 | 
						|
 | 
						|
```
 | 
						|
POST /v1/users/unix
 | 
						|
```
 | 
						|
 | 
						|
This enables an existing UNIX account on the system for administrative
 | 
						|
operations. The request body must define at least the following fields.
 | 
						|
 | 
						|
* `data.id`
 | 
						|
  * The username
 | 
						|
 | 
						|
* `data.type`
 | 
						|
  * Type of the object, must be `unix`
 | 
						|
 | 
						|
* `data.attributes.account`
 | 
						|
  * Set to `admin` for administrative users and `basic` to read-only users
 | 
						|
 | 
						|
Here is an example request body enabling the UNIX account _jdoe_ for read-only operations.
 | 
						|
 | 
						|
```javascript
 | 
						|
{
 | 
						|
    "data": {
 | 
						|
        "id": "jdoe",
 | 
						|
        "type": "unix"
 | 
						|
        "attributes": {
 | 
						|
            "account": "basic"
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
#### Response
 | 
						|
 | 
						|
```
 | 
						|
Status: 204 No Content
 | 
						|
```
 | 
						|
 | 
						|
### Delete a network user
 | 
						|
 | 
						|
```
 | 
						|
DELETE /v1/users/inet/:name
 | 
						|
```
 | 
						|
 | 
						|
The _:name_ part of the URI must be a valid user name.
 | 
						|
 | 
						|
#### Response
 | 
						|
 | 
						|
```
 | 
						|
Status: 204 No Content
 | 
						|
```
 | 
						|
 | 
						|
### Disable a UNIX account
 | 
						|
 | 
						|
```
 | 
						|
DELETE /v1/users/unix/:name
 | 
						|
```
 | 
						|
 | 
						|
The _:name_ part of the URI must be a valid user name.
 | 
						|
 | 
						|
#### Response
 | 
						|
 | 
						|
```
 | 
						|
Status: 204 No Content
 | 
						|
```
 |