Skip to main content

Geo-Awareness Automated Test Interfaces (v0.2.2)

Esta interface é implementada por cada USS (UAS Service Supplier) que deseja ser testado pelo framework de testes automatizados. A suíte de testes chama esta interface para carregar dados de teste no sistema do USS sob teste e ler informações de Geo-Awareness (Consciência Geográfica) para avaliar seu processamento e interpretação.

Segurança (Autenticação)

  • Tipo: OAuth2 (Client Credentials)

  • Escopo Necessário: geo-awareness.test

  • Descrição: Permite que o cliente instrua o USS sob teste a carregar dados de Geozone e ler informações de Geo-Awareness. O token JWT deve ser enviado no header Authorization: Bearer <token>.

Endpoints

1. Consultar Status da Interface

Rota: GET /status

Obtém o status atual da interface de testes automatizados do USS.

  • Escopo Exigido: geo-awareness.test

  • Respostas Esperadas:

    • 200 OK: Interface ativada. Retorna se está Starting (iniciando) ou Ready (pronta para receber testes).

    • 404 Not Found: A interface de testes não está ativada.

2. Importar e Ativar Fonte de Geozone

Rota: PUT /geozone_sources/{geozone_source_id}

Instrui o USS a importar e ativar dados de Geozone a partir de uma fonte especificada (como um link HTTPS para um JSON).

  • Parâmetros de Rota: geozone_source_id (obrigatório) - Um UUID v4 que identifica a fonte de dados.

  • Corpo da Requisição: Requer o objeto CreateGeozoneSourceRequest.

  • Respostas Esperadas:

    • 200 OK: A requisição foi processada e o USS foi instruído a importar os dados. Retorna o schema GeozoneSourceResponse.

3. Consultar Status da Fonte de Geozone

Rota: GET /geozone_sources/{geozone_source_id}

Obtém o status de processamento da fonte de Geozone e de seus dados dentro do USS.

  • Respostas Esperadas:

    • 200 OK: A fonte existe. Retorna o status atual (Activating, Ready, Deactivating, Unsupported, Rejected, Error). Em caso de erro, uma mensagem de debug é incluída.

    • 404 Not Found: A fonte de Geozone não existe ou já foi desativada com sucesso.

4. Desativar Fonte de Geozone

Rota: DELETE /geozone_sources/{geozone_source_id}

Instrui o USS a desativar e excluir a fonte de Geozone e todos os seus dados.

  • Respostas Esperadas:

    • 200 OK: Requisição processada e os dados serão deletados. O status da deleção deve ser verificado usando o método GET até que ele retorne 404.

5. Checar Geozones Aplicáveis (Check)

Rota: POST /geozones/check

Verifica se uma ou múltiplas Geozones são aplicáveis a uma posição de interesse, para um período de tempo e condições operacionais especificadas.

  • Corpo da Requisição: GeozonesCheckRequest (lista de checagens contendo conjuntos de filtros).

  • Respostas Esperadas:

    • 200 OK: A checagem foi realizada com sucesso. Retorna GeozonesCheckReply, indicando se a Geozone está Present, Absent, UnsupportedFilter ou Error para cada filtro solicitado.

Payloads de Exemplo (JSON)

Exemplo de Importação de Fonte (PUT)

JSON
{
  "https_source": {
    "url": "https://caa.example.com/geozones.json",
    "format": "ED-269"
  }
}

Exemplo de Resposta de Status (GET /geozone_sources/...)

JSON
{
  "result": "Ready"
}

Exemplo de Checagem de Geozones (POST /geozones/check)

Formato esperado para simular a validação de uma posição contra o banco de dados de zonas:

JSON
{
  "checks": [
    {
      "filterSets": [
        {
          "position": {
            "uomDimensions": "M",
            "verticalReferenceType": "AGL",
            "height": 120.0,
            "longitude": -45.8872,
            "latitude": -23.1791
          },
          "after": "2024-04-22T16:30:00Z",
          "before": "2024-04-22T18:30:00Z",
          "ed269": {
            "uSpaceClass": "EUROCONTROL",
            "acceptableRestrictions": ["PROHIBITED", "REQ_AUTHORISATION"]
          }
        }
      ]
    }
  ]
}