# Gaio User Manager API

This documentation describes the Gaio User Manager API, based on the OpenAPI 3.0 specification.

### Users API

#### GET /api/auth/manager/users/{page}

**Description:** Retrieves all users.

**Parameters:**

* `page` (path, optional): Page number.

**Responses:**

* `200 OK`: Returns all users.

  **Response Example:**

  ```json
  jsonCopyEdit{
    "userId": 1,
    "name": "Gaio User",
    "email": "gaio.user@gaio.io",
    "status": "active",
    "groups": [
      "Analytics team",
      "Development team",
      "RH team"
    ]
  }
  ```

***

#### GET /api/auth/manager/user/{userId}

**Description:** Retrieves a single user.

**Parameters:**

* `userId` (path, required): User ID.

**Responses:**

* `200 OK`: Returns the user.

  **Response Example:**

  ```json
  jsonCopyEdit{
    "userId": 1,
    "name": "Gaio User",
    "email": "gaio.user@gaio.io",
    "status": "active",
    "groups": [
      "Analytics team",
      "Development team",
      "RH team"
    ]
  }
  ```

***

#### POST /api/auth/manager/create-user

**Description:** Creates a new user.

**Parameters:**

* `body` (request body, required): Data for the user to be created.

  **Request Example:**

  ```json
  jsonCopyEdit{
    "name": "New User",
    "email": "new.user@gaio.io",
    "password": "securePassword123",
    "groups": [
      "Development team"
    ]
  }
  ```

**Responses:**

* `200 OK`: User successfully created.

  **Response Example:**

  ```json
  jsonCopyEdit{
    "userId": 2,
    "name": "New User",
    "email": "new.user@gaio.io",
    "status": "active",
    "groups": [
      "Development team"
    ]
  }
  ```

***

#### POST /api/auth/manager/status

**Description:** Changes the status of a user.

**Parameters:**

* `body` (request body, required): User ID and new status.

  **Request Example:**

  ```json
  jsonCopyEdit{
    "userId": 0,
    "status": "active"
  }
  ```

**Responses:**

* `200 OK`: User status successfully updated.

***

#### POST /api/auth/manager/update

**Description:** Updates user information.

**Parameters:**

* `body` (request body, required): Data of the user to be updated.

  **Request Example:**

  ```json
  jsonCopyEdit{
    "userId": 1,
    "name": "Updated Gaio User",
    "email": "gaio.user.updated@gaio.io"
  }
  ```

**Responses:**

* `200 OK`: User successfully updated.

***

#### POST /api/auth/manager/update-password

**Description:** Updates a user's password.

**Parameters:**

* `body` (request body, required): User ID and new password.

  **Request Example:**

  ```json
  jsonCopyEdit{
    "userId": 0,
    "password": "newSecurePassword"
  }
  ```

**Responses:**

* `200 OK`: User password successfully updated.

***

#### DELETE /api/auth/manager/delete

**Description:** Deletes a user.

**Parameters:**

* `body` (request body, required): ID of the user to be deleted.

  **Request Example:**

  ```json
  jsonCopyEdit{
    "userId": 0
  }
  ```

**Responses:**

* `200 OK`: User successfully deleted.

***

### Groups API

#### POST /api/auth/manager/create-group

**Description:** Creates a new group.

**Parameters:**

* `body` (request body, required): Name of the group to be created.

  **Request Example:**

  ```json
  jsonCopyEdit{
    "name": "New Group"
  }
  ```

**Responses:**

* `200 OK`: Group successfully created.

***

#### DELETE /api/auth/manager/delete-group

**Description:** Deletes a group.

**Parameters:**

* `body` (request body, required): ID of the group to be deleted.

  **Request Example:**

  ```json
  jsonCopyEdit{
    "groupId": 0
  }
  ```

**Responses:**

* `200 OK`: Group successfully deleted.

***

#### GET /api/auth/manager/groups/{page}

**Description:** Retrieves all groups.

**Parameters:**

* `page` (path, optional): Page number.

**Responses:**

* `200 OK`: Returns all groups.

  **Response Example:**

  ```json
  jsonCopyEdit{
    "groupId": 1,
    "name": "Example Group"
  }
  ```

***

#### POST /api/auth/manager/group/grant

**Description:** Assigns user groups.

**Parameters:**

* `body` (request body, required): User ID and group IDs to be granted.

  **Request Example:**

  ```json
  jsonCopyEdit{
    "userId": 0,
    "groupIds": [
      0
    ]
  }
  ```

**Responses:**

* `200 OK`: User groups successfully assigned.

***

#### POST /api/auth/manager/group/revoke

**Description:** Revokes user groups.

**Parameters:**

* `body` (request body, required): User ID and group IDs to be revoked.

  **Request Example:**

  ```json
  jsonCopyEdit{
    "userId": 0,
    "groupIds": [
      0
    ]
  }
  ```

**Responses:**

* `200 OK`: User groups successfully revoked.

***

### Permissions API

#### POST /api/auth/manager/tag/grant

**Description:** Adds app/source permission to a user/group.

**Parameters:**

* `body` (request body, required): User/group ID and permission tags.

  **Request Example:**

  ```json
  jsonCopyEdit{
    "userId": 0,
    "tags": [
      "admin"
    ]
  }
  ```

**Responses:**

* `200 OK`: Permission successfully added.

***

#### POST /api/auth/manager/tag/revoke

**Description:** Removes app/source permission from a user/group.

**Parameters:**

* `body` (request body, required): User/group ID and permission tags to be revoked.

  **Request Example:**

  ```json
  jsonCopyEdit{
    "userId": 0,
    "tags": [
      "admin"
    ]
  }
  ```

**Responses:**

* `200 OK`: Permission successfully removed.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gaiodataos.com/gaio-dataos-portuguese/configuracoes/gaio-user-manager-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
