> For the complete documentation index, see [llms.txt](https://docs.skyone.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.skyone.cloud/api-skyone-autosky/api-usuarios.md).

# API Usuários

Chamadas de API para operação dos objetos Usuários (Usuários de Acesso ao Sistema).

**Base path:** `/users/`

***

## Listar Usuários

Realiza a consulta dos usuários cadastrados na plataforma Autosky e vinculados aos clientes.

```http
GET /users/
```

### Parâmetros de Query (opcionais)

| Parâmetro  | Tipo   | Descrição                                         |
| ---------- | ------ | ------------------------------------------------- |
| `cli_uuid` | string | UUID do cliente para filtrar usuários específicos |

### Resposta

**Status:** `200 OK`

```json
[
    {
        "nome": "João",
        "sobrenome": "Souza",
        "email": "joao.souza@dominio.com",
        "ativo": true,
        "username": "joao.souza",
        "usr_uuid": "3bc705ab-5536-4193-bd5c-2d3e8ffd2e5b",
        "external_ad": false
    }
]
```

***

## Obter dados de um usuário

Obtém dados de um usuário especificado por seu UUID. Além dos campos da listagem, também inclui o campo `clients`.

```http
GET /users/{usr_uuid}
```

### Parâmetros de Path

| Parâmetro  | Obrigatório | Descrição       |
| ---------- | ----------- | --------------- |
| `usr_uuid` | Sim         | UUID do usuário |

### Resposta

**Status:** `200 OK`

```json
{
    "nome": "João",
    "sobrenome": "Souza",
    "email": "joao.souza@dominio.com",
    "ativo": true,
    "username": "joao.souza",
    "usr_uuid": "3bc705ab-5536-4193-bd5c-2d3e8ffd2e5b",
    "clients": [
        {
            "cli_uuid": "79ea8324-4889-4729-8bf0-bc1c40b38273",
            "nome": "MeuCliente001",
            "grupo_seguranca": "Cliente001",
            "email_admin": "email-adm@dominio.com",
            "has_license_limit": false,
            "license_limit": 0,
            "amb_uuid": "715088c9-9f21-424e-bcd5-5eacc0ce165b"
        }
    ],
    "external_ad": false
}
```

***

## Cadastrar Usuário

Realiza o cadastramento de um novo usuário na plataforma.

* Caso o usuário já exista, este procedimento irá apenas vinculá-lo ao cliente enviado como parâmetro.
* Armazene o UUID de retorno para modificações futuras.
* Caso possua um Active Directory específico para o ambiente, utilize `external_ad: true` para configurar a senha no cadastro.

```http
POST /users/
```

### Body da Requisição

| Campo                   | Tipo    | Obrigatório | Descrição                                                    |
| ----------------------- | ------- | ----------- | ------------------------------------------------------------ |
| `nome`                  | string  | Sim         | Nome do usuário                                              |
| `sobrenome`             | string  | Não         | Sobrenome do usuário                                         |
| `email`                 | string  | Sim         | Email de logon do usuário                                    |
| `ativo`                 | boolean | Não         | Se o usuário está ativo                                      |
| `username`              | string  | Não         | Nome do usuário no AD                                        |
| `password`              | string  | Não         | Senha do usuário                                             |
| `cli_uuid`              | string  | Sim         | UUID do cliente em que o usuário será cadastrado             |
| `description`           | string  | Não         | Informações complementares do usuário                        |
| `fullname`              | string  | Não         | Nome completo (deve conter ao menos duas palavras separadas) |
| `external_ad`           | boolean | Não         | `true` caso possua Active Directory próprio                  |
| `send_activation_email` | boolean | Não         | Se deve enviar email de ativação ao usuário                  |

### Exemplo de Requisição

```json
{
    "nome": "Joao",
    "sobrenome": "Souza",
    "email": "joao.souza@dominio.com",
    "ativo": true,
    "username": "joao.souza",
    "password": "senha123",
    "cli_uuid": "769a0f4e-16a8-422a-99ab-d8c416137d4c",
    "description": "Informações do Usuário XXXX",
    "fullname": "Joao Souza Martins",
    "external_ad": false,
    "send_activation_email": false
}
```

### Resposta

**Status:** `200 OK`

```json
{
    "nome": "Joao",
    "sobrenome": "Souza",
    "email": "joao.souza@dominio.com",
    "ativo": true,
    "username": "joao.souza",
    "usr_uuid": "3bc705ab-5536-4193-bd5c-2d3e8ffd2e5b",
    "clients": [],
    "external_ad": true
}
```

***

## Editar Usuário

Realiza a edição das informações do usuário. Apenas algumas informações poderão ser modificadas.

```http
PUT /users/{usr_uuid}
```

### Parâmetros de Path

| Parâmetro  | Obrigatório | Descrição       |
| ---------- | ----------- | --------------- |
| `usr_uuid` | Sim         | UUID do usuário |

### Body da Requisição

| Campo         | Tipo    | Descrição                  |
| ------------- | ------- | -------------------------- |
| `nome`        | string  | Nome do usuário            |
| `sobrenome`   | string  | Sobrenome do usuário       |
| `ativo`       | boolean | Se o usuário está ativo    |
| `password`    | string  | Senha do usuário           |
| `description` | string  | Informações complementares |

### Exemplo de Requisição

```json
{
    "nome": "Joao",
    "sobrenome": "Souza",
    "ativo": true,
    "password": "senha123"
}
```

### Resposta

**Status:** `200 OK`

Retorna o objeto completo do usuário atualizado, incluindo o array `clients`.

***

## Ativar / Desativar Usuário

Ativa ou desativa um usuário.

```http
PATCH /users/{usr_uuid}
```

### Parâmetros de Path

| Parâmetro  | Obrigatório | Descrição       |
| ---------- | ----------- | --------------- |
| `usr_uuid` | Sim         | UUID do usuário |

### Body da Requisição

| Campo                   | Tipo    | Obrigatório | Descrição                                   |
| ----------------------- | ------- | ----------- | ------------------------------------------- |
| `ativo`                 | boolean | Sim         | `true` para ativar, `false` para desativar  |
| `send_activation_email` | boolean | Não         | Se deve enviar email de ativação            |
| `cli_uuid`              | string  | Não         | UUID do cliente associado ao envio do email |

### Exemplo de Requisição

```json
{
    "ativo": true,
    "send_activation_email": false,
    "cli_uuid": "769a0f4e-16a8-422a-99ab-d8c416137d4c"
}
```

### Resposta

**Status:** `200 OK`

```json
{
    "nome": "João",
    "sobrenome": "Souza",
    "email": "joao.souza@dominio.com",
    "ativo": true,
    "username": "joao.souza",
    "cli_uuid": "769a0f4e-16a8-422a-99ab-d8c416137d4c"
}
```

***

## Alterar Senha do Usuário

Modifica a senha de acesso de um usuário.

{% hint style="info" %}
**Nota:** As informações de senha não são armazenadas no banco de dados da plataforma Autosky. São armazenadas diretamente no AD de autenticação definido na plataforma.
{% endhint %}

```http
PATCH /users/{usr_uuid}
```

### Parâmetros de Path

| Parâmetro  | Obrigatório | Descrição       |
| ---------- | ----------- | --------------- |
| `usr_uuid` | Sim         | UUID do usuário |

### Body da Requisição

| Campo      | Tipo   | Obrigatório | Descrição             |
| ---------- | ------ | ----------- | --------------------- |
| `password` | string | Sim         | Nova senha do usuário |

### Exemplo de Requisição

```json
{
    "password": "NovaSenhaSegura@2024!"
}
```

### Resposta

**Status:** `200 OK`

```json
{
    "status": "success"
}
```

***

## Remover Usuário

Realiza a exclusão de um usuário na plataforma.

```http
DELETE /users/{usr_uuid}
```

### Parâmetros de Path

| Parâmetro  | Obrigatório | Descrição       |
| ---------- | ----------- | --------------- |
| `usr_uuid` | Sim         | UUID do usuário |

### Resposta de Sucesso

**Status:** `200 OK`

```json
{
    "status": "success"
}
```

### Resposta de Erro

**Status:** `404 Not Found`

```json
{
    "status": "error",
    "detail": "Não encontrado"
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.skyone.cloud/api-skyone-autosky/api-usuarios.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
