# 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 (Client Credentials)
- **Escopo Necessário:** rid.inject\_test\_data
- **Descrição:** Acesso concedido para injetar dados de teste em um Provedor de Serviços.

## Endpoints

### 1. Criar Teste

**Rota:** `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 (obrigatório) - O ID do teste. Exemplo: 2979bd18-7f06-441c-bda6-e82c841c35d6
- **Corpo da Requisição:** Requer o objeto CreateTestParameters (uma lista de voos).
- **Respostas Esperadas:**
    
    
    - **200 OK:** Teste criado com sucesso. Retorna ChangeTestResponse.
    - **409 Conflict:** O teste já existe.

### 2. Deletar Teste

**Rota:** `DELETE /tests/{test_id}/{version}`

Remove todos os dados de teste associados a este teste do injetor do Provedor de Serviços.

- **Parâmetros de Rota:** test\_id (obrigatório) e version (obrigatório).
- **Respostas Esperadas:**
    
    
    - **200 OK:** Teste deletado com sucesso. Retorna DeleteTestResponse.

### 3. Consultar Notificações de Usuário

**Rota:** `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 (obrigatório): Não incluir notificações observadas antes deste horário.
    
    
    - before (opcional): Não incluir notificações após este horário. O padrão é o agora.
- **Respostas Esperadas:**
    
    
    - **200 OK:** Notificações recuperadas com sucesso.
    - **400 Bad Request:** Faltando o parâmetro 'after' ou requisição inválida.
    - **401 Unauthorized:** Token ausente, não pôde ser decodificado ou é inválido.
    - **403 Forbidden:** Token decodificado, mas sem o escopo apropriado.

## Payload de Exemplo (JSON)

Formato esperado para o envio das informações do voo:

<div _ngcontent-ng-c2141869219="" class="code-block ng-tns-c2141869219-46 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwiB9JTg8o6VAxUAAAAAHQAAAAAQkwI" decode-data-ved="1" id="bkmrk-json" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_7db9aac8f6778303","c_c96b9eb05b5ddc8a",null,"rc_d19e9c6761b9397d",null,null,"pt",null,1,null,null,1,0]]"><div _ngcontent-ng-c2141869219="" class="formatted-code-block-internal-container ng-tns-c2141869219-46"><div _ngcontent-ng-c2141869219="" class="animated-opacity ng-tns-c2141869219-46"><div _ngcontent-ng-c2141869219="" class="code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c2141869219-46 ng-star-inserted"><span class="ng-tns-c2141869219-46">JSON</span><div _ngcontent-ng-c2141869219="" class="buttons ng-tns-c2141869219-46 ng-star-inserted"><button aria-label="Baixar código" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted"></button><button aria-label="Copiar o código" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted"></button></div></div></div></div></div>```
{
  "requested_flights": [
    {
      "injection_id": "edb7695f-8737-4b9f-91f8-e2afbb333f41",
      "aircraft_type": "Aeroplane",
      "telemetry": [
        {
          "timestamp": "2024-04-22T16:36:50.52Z",
          "position": {
            "lat": -23.1791,
            "lng": -45.8872,
            "alt": 100.0
          }
        }
      ],
      "details_responses": [
        {
          "effective_after": "2024-04-22T16:36:50.52Z",
          "details": {
            "id": "a3423b-213401-0023"
          }
        }
      ]
    }
  ]
}
```