Skip to main content

Geospatial Map Provider Automated Testing Interface (v0.2.3)

Esta interface é implementada para fornecer ao uss_qualifier (e possivelmente a outros clientes semelhantes) a capacidade de simular um usuário interagindo com o mapa geoespacial do USS (UAS Service Supplier) para avaliar potenciais planos de voo.

A suíte de testes automatizados pode chamar esta interface para carregar dados de teste no USS e, em seguida, realizar consultas virtuais no mapa geoespacial para avaliar o processamento e a interpretação de dados de Geo-Awareness.

Segurança (Autenticação)

  • Tipo: OAuth2 (Client Credentials)

  • Escopos Necessários:

    • interuss.geospatial_map.direct_automated_test: Permite determinar a prontidão do USS para teste e instruir o administrador a carregar fontes de dados geoespaciais (agindo como diretor de testes).

    • interuss.geospatial_map.query: Permite ler informações do mapa geoespacial do USS como seriam vistas por um usuário normal.

  • Descrição: O token JWT deve ser enviado no header Authorization: Bearer <token>.

Endpoints

1. Consultar Status da Interface

Rota: GET /status

Obtém o status desta interface de testes automatizados.

  • Escopo Exigido: interuss.geospatial_map.direct_automated_test

  • Respostas Esperadas:

    • 200 OK: Interface disponível. Retorna Starting ou Ready.

    • 404 Not Found: A interface não está disponível.

2. Listar Fontes de Dados Geoespaciais

Rota: GET /geospatial_data_sources

Lista todas as fontes de dados geoespaciais carregadas pelo administrador do USS a pedido do diretor de testes.

  • Escopo Exigido: interuss.geospatial_map.direct_automated_test

  • Respostas Esperadas:

    • 200 OK: Retorna o schema ListGeospatialDataSourcesResponse (lista de fontes e seus respectivos status).

3. Importar e Ativar Fonte de Dados

Rota: PUT /geospatial_data_sources/{geospatial_data_source_id}

Instrui o administrador do USS a importar e ativar dados geoespaciais da fonte especificada (como um link HTTPS para um JSON ED-269).

  • Parâmetros de Rota: geospatial_data_source_id (obrigatório, formato UUID v4).

  • Corpo da Requisição: CreateGeospatialDataSourceRequest.

  • Respostas Esperadas:

    • 200 OK: O USS foi instruído a importar e ativar os dados. Retorna GeospatialDataSourceResponse.

    • 409 Conflict: Um pedido com este ID já foi feito para carregar uma fonte de dados diferente.

4. Consultar Status de uma Fonte de Dados

Rota: GET /geospatial_data_sources/{geospatial_data_source_id}

Obtém o status de processamento/ativação de uma fonte de dados específica no USS.

  • Respostas Esperadas:

    • 200 OK: Retorna status (Activating, Ready, Error, etc).

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

5. Desativar Fonte de Dados

Rota: DELETE /geospatial_data_sources/{geospatial_data_source_id}

Instrui o administrador do USS a desativar e excluir a fonte de dados geoespaciais.

  • Respostas Esperadas:

    • 200 OK: Requisição processada. O status da deleção pode ser checado via GET (até retornar 404).

6. Consultar Mapa Geoespacial (Queries)

Rota: POST /map/queries

Verifica se uma ou múltiplas características geoespaciais (Geozones/Features) se aplicam a uma posição de interesse para um período de tempo especificado ou condições operacionais (Simulação de clique/consulta no mapa).

  • Escopo Exigido: interuss.geospatial_map.query

  • Corpo da Requisição: GeospatialMapQueryRequest (contendo filtros de volume 4D, tempo, regra de operação, etc).

  • Respostas Esperadas:

    • 200 OK: Consulta realizada. Retorna se há intersecção/presença de características geoespaciais (schema GeospatialMapQueryReply com status Present, Absent, etc).

Payloads de Exemplo (JSON)

Exemplo de Criação de Fonte de Dados (PUT)

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

Exemplo de Resposta de Status da Fonte

JSON
{
  "data_source": {
    "id": "32ef0162-30c4-4e56-9ce0-b204155ef93d",
    "status": "Ready"
  }
}

Exemplo de Consulta no Mapa (POST /map/queries)

JSON
{
  "checks": [
    {
      "filter_sets": [
        {
          "position": {
            "location": { "lat": -23.179, "lng": -45.887 },
            "altitude": { "value": 100, "reference": "W84", "units": "M" }
          },
          "operation_rule_set": "Part107",
          "resulting_operational_impact": "BlockOrAdvise",
          "ed269": {
            "u_space_class": "EUROCONTROL"
          }
        }
      ]
    }
  ]
}