GET | Listar todos os dispositivos

Prev Next

Descrição

Liste os dispositivos associados à sua autorização no PAM Core, utilizando o modelo canônico v2. Retorna uma projeção paginada e filtrável da entidade DeviceV2.

Info

Este endpoint faz parte da superfície da API v2 do A2A e está disponível a partir da versão 4.2.9 do Segura®. Os dispositivos são servidos pelo caminho base /api/v2/platform, e não por /api/v2/pam como os demais recursos v2. O equivalente v1 está documentado em GET | Listar todos os dispositivos.


Pré-requisitos


Requisição

GET /api/v2/platform/devices

Parâmetros de query

Todos os parâmetros de query são opcionais. Quando nenhum é informado, o endpoint retorna a primeira página de todos os dispositivos acessíveis à autorização, utilizando a projeção de listagem definida no schema de resposta.

Filtros

Os filtros são combinados com lógica AND: o dispositivo precisa atender a todos os filtros informados.

Campo Tipo Descrição
name string Filtra pelo nome do dispositivo. Correspondência exata.
address string Filtra pelo endereço IP, hostname ou URL de gerenciamento. Correspondência exata.
active boolean Filtra pelo estado operacional. Valores aceitos: true, false.
type string Filtra pelo tipo de dispositivo. Correspondência exata com um tipo cadastrado. Veja Tipos.
vendor string Filtra pelo fabricante. Correspondência exata com um fabricante cadastrado. Veja Fabricantes.
product string Filtra pelo modelo. Correspondência exata com um modelo cadastrado. Veja Modelos.
site string Filtra pelo site. Correspondência exata com um site cadastrado. Veja Sites.
domain_name string Filtra pelo nome de domínio. Correspondência exata. Omita este parâmetro para retornar dispositivos independentemente de associação a domínio.
tags array[string] Filtra por uma ou mais tags. Use valores separados por vírgula para lógica OR (tags=prod,database); repita o parâmetro para lógica AND (tags=prod&tags=database).
search string Realiza uma busca de texto livre no inventário de dispositivos.

Ordenação

sort_by aceita um ou mais campos no formato campo:asc ou campo:desc. Múltiplos campos são separados por vírgula e processados da esquerda para a direita. A direção padrão é asc. Exemplo: sort_by=name:asc,type:desc.

Campos ordenáveis: name, type, vendor, product, site.

Um campo não suportado retorna 422 (api.sort.invalid_field), com uma indicação dos campos permitidos; uma direção não suportada retorna 422 (api.sort.invalid_direction). Para as regras completas de ordenação, consulte API v2 - Convenções e comportamentos compartilhados.

Projeção de campos

fields restringe a resposta aos campos informados, utilizando caminhos com namespace. Exemplo: fields=id,device.name,device.address.

O campo data[].id é sempre retornado, mesmo que a projeção não o solicite. Um caminho que não existe na projeção de listagem retorna 422 (api.fields.invalid).

Paginação

Campo Tipo Descrição
page integer Número da página. Mínimo: 1. Padrão: 1.
limit integer Resultados por página. Mínimo: 1. Máximo: 200. Padrão: 50.

Um limit acima de 200 retorna 422 (api.pagination.limit.exceeded), e page=0 retorna 422 (api.request.invalid_param). Uma página além da última retorna 200 com o array data vazio e metadados de paginação coerentes.


Exemplo de requisição

GET {{url}}/api/v2/platform/devices?vendor=Oracle&active=true&sort_by=name:asc&limit=50


Resposta

HTTP/1.1 200 OK

Toda resposta traz o cabeçalho X-Request-Id, que correlaciona a requisição nos logs do Segura®.

Exemplo de corpo da resposta

{
    "data": [
        {
            "id": "55",
            "device": {
                "name": "db-prod-01",
                "address": "10.10.10.10",
                "active": true,
                "type": "Server",
                "vendor": "Oracle",
                "product": "Oracle Linux VM",
                "site": "SP-DC1",
                "domain_name": "CORP",
                "tags": ["prod", "database"]
            }
        },
        {
            "id": "56",
            "device": {
                "name": "ws-dev-04",
                "address": "10.20.30.40",
                "active": false,
                "type": "Workstation",
                "vendor": "Microsoft",
                "product": "Windows Server 2022",
                "site": "NY-DC2",
                "domain_name": null,
                "tags": []
            }
        }
    ],
    "meta": {
        "pagination": {
            "page": 1,
            "limit": 50,
            "total_items": 340,
            "total_pages": 7
        },
        "links": {
            "self": "/api/v2/platform/devices?page=1&limit=50",
            "first": "/api/v2/platform/devices?page=1&limit=50",
            "next": "/api/v2/platform/devices?page=2&limit=50",
            "last": "/api/v2/platform/devices?page=7&limit=50"
        }
    }
}

Campos do corpo da resposta

Campo Tipo Descrição
data array de objetos Lista de dispositivos que atendem aos filtros da requisição. Retorna um array vazio quando nenhum dispositivo corresponde.
data[].id string Código de identificação único do dispositivo, atribuído pelo Segura® em POST | Criar dispositivo (v2). Sempre presente na resposta.
data[].device object Atributos do dispositivo incluídos na projeção de listagem.
data[].device.name string Nome que identifica o dispositivo.
data[].device.address string Endereço IP, hostname ou URL de gerenciamento do dispositivo.
data[].device.active boolean Indica se o dispositivo está ativo.
data[].device.type string Tipo do dispositivo. Cadastrado em Tipos.
data[].device.vendor string Fabricante do dispositivo. Cadastrado em Fabricantes.
data[].device.product string Modelo do dispositivo, vinculado ao fabricante. Cadastrado em Modelos.
data[].device.site string Site onde o dispositivo está localizado. Cadastrado em Sites.
data[].device.domain_name string Domínio associado ao dispositivo. Retorna null quando o dispositivo não está vinculado a um domínio.
data[].device.tags array[string] Tags associadas ao dispositivo. Retorna um array vazio quando nenhuma tag está configurada.
meta object Metadados de paginação e links de navegação.
meta.pagination object Detalhes de paginação do conjunto de resultados atual.
meta.pagination.page integer Número da página atual.
meta.pagination.limit integer Número máximo de resultados por página.
meta.pagination.total_items integer Número total de dispositivos que atendem aos filtros.
meta.pagination.total_pages integer Número total de páginas.
meta.links object Links de navegação para paginar os resultados.
meta.links.self string URL da página atual.
meta.links.first string URL da primeira página.
meta.links.next string URL da próxima página.
meta.links.last string URL da última página.
Info

A projeção de listagem é um subconjunto do modelo canônico. Campos como criticality, owner, administrator_group, network_connector, enable_remote_app, connectivities e session_settings são retornados apenas pelo endpoint de detalhe. Para obtê-los, acesse GET | Listar um dispositivo (v2).


Erros

Código HTTP Mensagem Causa possível Solução
401 api.auth.token.invalid O token de acesso está ausente ou expirou. Solicite um novo token de acesso.
403 api.permission.denied A autorização não tem permissão de leitura para os recursos do PAM Core. Peça ao administrador para verificar as permissões da autorização no A2A e gere um novo token.
422 api.pagination.limit.exceeded O limit está acima do máximo de 200. Reduza o limit para 200 ou menos e pagine os resultados.
422 api.request.invalid_param O page é 0 ou está fora do intervalo permitido. Envie um valor de page igual ou maior que 1.
422 api.sort.invalid_field O sort_by referencia um campo fora do conjunto ordenável. Ordene por name, type, vendor, product ou site.
422 api.sort.invalid_direction O sort_by usa uma direção diferente de asc ou desc. Use campo:asc ou campo:desc.
422 api.fields.invalid O fields referencia um caminho fora da projeção de listagem. Verifique os caminhos dos campos no schema de resposta.
429 rate_limit_exceeded O limite de requisições do tenant, da aplicação ou do endpoint foi excedido. Aguarde o número de segundos indicado no cabeçalho Retry-After e tente novamente.
500 api.internal.error Erro interno do servidor. Entre em contato com a equipe de suporte da Segura®.

Exemplo de resposta de erro

422 um campo solicitado na projeção não existe:

{
    "error": {
        "code": "api.fields.invalid",
        "message": "One or more requested fields do not exist in the resource schema."
    }
}

Erros de autenticação

Mensagem Causa possível Solução
Client authentication failed. Falha na autenticação da aplicação com o servidor Segura®. Verifique os parâmetros de autenticação (Access Token URL, Client ID e Client secret) e solicite um novo token de acesso.
Invalid signature Falha no reconhecimento da URL da aplicação cliente. Verifique a URL da aplicação cliente e reenvie a requisição.
No route matched with those values. Cabeçalho de autorização ausente na requisição da API. Solicite um novo token de acesso.
Request timed out. A requisição excedeu o limite de tempo. Verifique a conectividade entre a origem da requisição e o servidor Segura®.

Para a política de 403 versus 404 aplicada a recursos fora do escopo da sua autorização, consulte API v2 - Convenções e comportamentos compartilhados.


Documentos relacionados