Remote ID Test Data Injection
# Remote ID Test Data Injection (v0.5.1)
Esta interface é fornecida por cada Provedor de Serviço (Service Provider) que deseja ser testado pelo framework de testes automatizados. A suíte de testes chama esta interface para injetar dados de voo no sistema sob teste.
---
## Segurança (Autenticação)
**Tipo:** OAuth2 (`clientCredentials`)
**Scope Necessário:** `rid.inject_test_data`
Acesso concedido para injetar dados de teste em um Provedor de Serviços.
---
## Endpoints
### 1. Criar Teste
`PUT /tests/{test_id}`
Solicita a criação de um ou mais voos lógicos baseados na injeção dos dados fornecidos. O ID de injeção (`injection_id`) não pode ser modificado pelo provedor.
**Parâmetros de Rota:**
* `test_id` (string, obrigatório): O ID do teste. Ex: `2979bd18-7f06-441c-bda6-e82c841c35d6`
**Corpo da Requisição (JSON):**
Requer o schema `CreateTestParameters` (uma lista de voos solicitados `requested_flights`).
**Respostas:**
* `200 OK`: Teste criado com sucesso. Retorna `ChangeTestResponse`.
* `409 Conflict`: O teste já existe.
---
### 2. Deletar Teste
`DELETE /tests/{test_id}/{version}`
Remove todos os dados associados a este teste do injetor do Provedor de Serviços.
**Parâmetros de Rota:**
* `test_id` (string, obrigatório): O ID do teste.
* `version` (string, obrigatório): A versão atual do teste.
**Respostas:**
* `200 OK`: Teste deletado com sucesso. Retorna `DeleteTestResponse`.
---
### 3. Consultar Notificações de Usuário
`GET /user_notifications`
Retorna a lista de notificações observadas pelo usuário virtual. As notificações devem estar disponíveis em até 5 segundos após a observação.
**Parâmetros de Query:**
* `after` (date-time, obrigatório): Não incluir notificações observadas antes deste horário.
* `before` (date-time, opcional): Não incluir notificações após este horário. Padrão é o momento atual.
**Respostas:**
* `200 OK`: Notificações recuperadas. Retorna `QueryUserNotificationsResponse`.
* `400 Bad Request`: Faltando o parâmetro `after` ou requisição inválida.
* `401 Unauthorized`: Token ausente ou inválido.
* `403 Forbidden`: Escopo do token incorreto.
---
## Schemas Principais (Referência)
Para facilitar a integração, aqui está o formato do payload principal de injeção de dados de voo (`TestFlight`):
```json
{
"injection_id": "edb7695f-8737-4b9f-91f8-e2afbb333f41",
"aircraft_type": "string",
"telemetry": [
{
"timestamp": "2024-04-22T16:36:50.52Z",
"position": {
"lat": 0,
"lng": 0,
"alt": 0
}
// ... RIDAircraftState details
}
],
"details_responses": [
{
"effective_after": "2024-04-22T16:36:50.52Z",
"details": {
"id": "a3423b-213401-0023"
// ... RIDFlightDetails
}
}
]
}