# Application User Groups Controller Resource

### GET /groups

Return list of groups.

Request Parameters
name | type | description
--- | --- | ---
direction | query |
filter | query |
nameLike | query |
orderBy | query |
page | query |
size | query |

Response Body
media type | data type | description
--- | --- | ---
application/json | array of AppUserGroupListRecordDto (JSON) | list of groups

#### Example

##### Request

    GET /groups
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    [ { } ]

### POST /groups

Create a new group.

Request Body
media type | data type | description
--- | --- | ---
application/json | AppUserGroupRequestDto (JSON) | specify data for a new group

Response Body
media type | data type | description
--- | --- | ---
application/json | AppUserGroupDetailsDto (JSON) | details of a newly created group

#### Example

##### Request

    POST /groups
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    { }

### DELETE /groups/{guid}

Remove group.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for group (use by vProtect)

#### Example

##### Request

    DELETE /groups/{guid}
    Content-Type: */*

    ...

##### Response

    HTTP/1.1 204 No Content

### GET /groups/{guid}

Get a single group.

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify local unique identifier for group (use by vProtect)

Response Body
media type | data type | description
--- | --- | ---
application/json | AppUserGroupDetailsDto (JSON) | a single group details

#### Example

##### Request

    GET /groups/{guid}
    Content-Type: */*
    Accept: application/json

    ...

##### Response

    HTTP/1.1 200 OK
    Content-Type: application/json

    { }

### PUT /groups/{guid}

Change group details.

Request Parameters
name | type | description
--- | --- | ---
guid | path |

Request Body
media type | data type | description
--- | --- | ---
application/json | AppUserGroupRequestDto (JSON) | specify group details to update

Response Body
media type | data type | description
--- | --- | ---
application/json | AppUserGroupDetailsDto (JSON) | updated details of group

#### Example

##### Request

    PUT /groups/{guid}
    Content-Type: application/json
    Accept: application/json

    { }

##### Response

    HTTP/1.1 204 No Content
    Content-Type: application/json

    { }

### POST /groups/{guid}/roles/add

Add roles to the group

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify group guid

Request Body
media type | data type
--- | ---
application/json | array of StringDTO (JSON)

Response Body
media type | data type | description
--- | --- | ---
application/json | AppUserGroupDetailsDto (JSON) | details of a newly created group

#### Example

##### Request

    POST /groups/{guid}/roles/add
    Content-Type: application/json
    Accept: application/json

    [ { } ]

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    { }

### POST /groups/{guid}/roles/remove

Add users to the group

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify group guid

Request Body
media type | data type
--- | ---
application/json | array of StringDTO (JSON)

Response Body
media type | data type | description
--- | --- | ---
application/json | AppUserGroupDetailsDto (JSON) | details of a newly created group

#### Example

##### Request

    POST /groups/{guid}/roles/remove
    Content-Type: application/json
    Accept: application/json

    [ { } ]

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    { }

### POST /groups/{guid}/users/add

Add users to the group

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify group guid

Request Body
media type | data type
--- | ---
application/json | array of StringDTO (JSON)

Response Body
media type | data type | description
--- | --- | ---
application/json | AppUserGroupDetailsDto (JSON) | details of a newly created group

#### Example

##### Request

    POST /groups/{guid}/users/add
    Content-Type: application/json
    Accept: application/json

    [ { } ]

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    { }

### POST /groups/{guid}/users/remove

Add users to the group

Request Parameters
name | type | description
--- | --- | ---
guid | path | specify group guid

Request Body
media type | data type
--- | ---
application/json | array of StringDTO (JSON)

Response Body
media type | data type | description
--- | --- | ---
application/json | AppUserGroupDetailsDto (JSON) | details of a newly created group

#### Example

##### Request

    POST /groups/{guid}/users/remove
    Content-Type: application/json
    Accept: application/json

    [ { } ]

##### Response

    HTTP/1.1 201 Created
    Content-Type: application/json

    { }