# Rotas Públicas (PT-BR)

***

## Documentação da API

### URL base

```
https://api.piercloud.io
```

### Autenticação de cliente HTTP

Todos os clientes HTTP precisam estar cadrastrados na plataforma da Pier Cloud para obter as credenciais de acesso. Para mais informações [acesse o link](https://docs.piercloud.com/plataforma-de-finops/finops-platform-english/platform-configuration/setup-features/api-keys).

***

### Autenticação

#### 1. Gerar token de acesso

Gerar token de acesso para cliente HTTP

* **URL:** `/auth`
* **Método:** `POST`
* **Descrição:** Retorna o token de acesso e demais informações a partir da credenciais fornecidas.

**Headers**

| Nome           | Tipo   | Obrigatório | Descrição                   |
| -------------- | ------ | ----------- | --------------------------- |
| `Content-Type` | string | Sim         | Deve ser `application/json` |

**Body**

```json
{
  "client_id": "string",
  "client_secret": "string"
}
```

**Exemplo de Requisição**

```bash
curl -X POST https://api.piercloud.io/auth \
     -H "Content-Type: application/json" \
     -d '{
           "client_id": "client_id",
           "client_secret": "client_secret",
         }'
```

**Resposta de Sucesso (201 Created)**

```json
{
  "code": "success",
  "data": {
    "access_token": "Token JWT",
    "expires_in": "Tempo de expiração em segundos",
    "refresh_expires_in": 0,
    "token_type": "Bearer",
    "not-before-policy": 0,
    "session_state": "",
    "scope": "Lista de permissões de acesso do cliente HTTP"
  }
}
```

**Resposta de Erro (400 Bad Request)**

```json
{
  "code": "bad-request/invalid-parameters",
  "message": "error message"
}
```

**Resposta de Erro (401 Unauthorized)**

```json
{
  "code": "failed",
  "message": "invalid or expired token"
}
```

***
