Requisicoes REST
blueMonitorApi
Requisições REST
�
Conteúdo
Introdução
Revisão
1. Cadastro de dispositivo
2. Sinal de máquina ligada
3. Configurações do blueMonitor
4. Envio de inventário
5. Lista de tipos de dispositivos
6. Lista de partes de dispositivos
7. Lista de categorias/localizações
8. Lista de coordenadorias
9. Envio de patrimônio (modelo ideal)
10. Envio de patrimônio (modelo atual)
11. Busca e ativação da escola
12. Configurações de suporte remoto
13. Suporte remoto
14. Antifurto
15. Updrive
� Introdução Este documento visa descrever os métodos contidos no serviço do blueMonitor. Baseado nos padrões definidos no estudo blueApi, que pode ser encontrado em: http://portal.mstech.com.br/pwa/EquipeProdutos/Documentos/BlueAPI/BlueAPI - REST.pdf. Revisão Versão Data Responsável Comentário 1.0
Lucas T. Godoy
Criação do documento.
2.0
Fernanda Z. Canaver
Formatação do documento, atualização dos métodos e inclusão dos novos métodos.
Hector Martins
Atualização do documento, modelos de json para o suporte remoto.
09/12/2013
Fernanda Z. Canaver
Inclusão de informações no envio de sinal de máquina ligada devido ao rastreamento de tablet.
19/03/2014
Lucas Barbosa
Atualização dos métodos: inclusão de antifurto
01/04/2014
Fernanda Z. Canaver
Atualização dos recursos referentes ao antifurto.
18/06/2014
Fernanda Z. Canaver
Atualização dos recursos referentes ao Updrive.
Cadastro de dispositivo
Responsável por cadastrar o dispositivo no Data Center do BlueMonitor, de forma que a máquina apareça na lista de dispositivos apresentada no site do BlueMonitor.
URL Geral: http://ip_address/devices
POST: Cadastra um novo dispositivo na lista. Retorna o código de sucesso (201) e a URL do dispositivo cadastrado ou o código de erro resultante da ação juntamente à mensagem de erro. Exemplo: http POST http://ip_address/devices
JSON do POST: { “k1” : “K1”, “k4” : “K4”, “macs” : [“00:00:01:02”, “00:00:01:02”], “name” : “NOME_MAQUINA”, “ip” : “192.168.2.10”, “osName”: “Ubuntu”,
“osVersion”: “12.04”
} JSON Retorno Sucesso (exemplo) {
"rel": "device", "href": "/devices/386145320948174629", "type": "application/json"
}
PUT: Atualiza um dispositivo na lista. Retorna o código de sucesso (200) e a URL do dispositivo alterado ou o código de erro resultante da ação juntamente à mensagem de erro.
Exemplo: http PUT http://ip_address/devices
JSON do PUT:
{
“k1” : “K1”,
“k4” : “K4”,
“macs” : [“00:00:01:02”, “00:00:01:02”],
“name” : “NOME_MAQUINA”,
“ip” : “192.168.2.10”,
“osName”: “Ubuntu”,
“osVersion”: “12.04”
} JSON Retorno Sucesso (exemplo) {
"rel": "device", "href": "/devices/386145320948174629", "type": "application/json"
}
Sinal de máquina ligada
Responsável por indicar ao blueMonitor que a máquina está ligada, para que o site exiba o status correto na tela. Retorna o código de sucesso (200) ou o código de erro resultante da ação juntamente à mensagem de erro.
URL Geral: http://ip_address/devices
PUT: Atualiza o uptime da máquina. Exemplo: http PUT http://ip_address/devices
JSON de envio:
{ "k1": "123456", "k4":"124545", "elapsedTime":125, "lat": "-23.3864533", "lon": "-46.8844527", "externalIp":"192.168.16.111", "schoolExternalIp":"192.168.16.111" }
Configurações do blueMonitor
Responsável por retornar as configurações definidas no site do blueMonitor, como frequência de envio de inventário, por exemplo.
URL Geral: http://ip_address/configurations
GET: Retorna as configurações cadastradas no blueMonitor, filtradas pela chave k1 do domínio passada na URL. Exemplo: http GET http://ip_address/configurations?k1=784512A2C
JSON Retorno Sucesso (exemplo) { “k1”: “784512A2C”
“serverInventoryInterval”: 1,
“selfInventoryInterval”: 1 }
Envio de inventário
Responsável por enviar os arquivos de inventário para o site do blueMonitor, para que as informações coletadas no dispositivo sejam exibidas na Web.
URL Geral: http://ip_address/inventories
POST: Cadastra um novo inventário na lista. Retorna o código de sucesso (201) e a URL do inventário cadastrado ou o código de erro resultante da ação juntamente à mensagem de erro.
Exemplo: http POST http://ip_address/inventories JSON do POST: { "Inventario": { "Software": { "SO": { "Versão": "6.1", "Patch": "Service Pack 1", "Arquitetura": "x64", "Distribuição": "Microsoft Windows 7", "Nome": "Win32", "Chave": "bbbb-bbbb-bbbb-bbbb" }, "MStech": [ { "Descrição": "BlueSupport", "Versão": "2.5", "Origem": "" }, { "Descrição": "BlueSupport", "Versão": "1.0", "Origem": "Arquivo" }, { "Descrição": "BlueSupport", "Versão": "3.9", "Origem": "Registro" } ], "Office": [ { "Descrição": "Microsoft Office Word", "Chave": "65874", "Versão": "2007" }, { "Descrição": "Microsoft Office Excel", "Chave": "65874", "Versão": "2007" } ] }, "Hardware": { "Rede": [ { "Interface": "eth9", "Máscara de rede": "F0:4D:A2:DE:6A:01", "Host": "MS-PRO87", "IP": "192.168.2.221", "Gateway": "0.0.0.0", "DNS": "192.168.1.250", "Domínio": "mstech.com.br", "MAC": "F0:4D:A2:DE:6A:01" }, { "Interface": "eth9", "Máscara de rede": "F0:4D:A2:DE:6A:01", "Host": "MS-PRO87", "IP": "192.168.2.221", "Gateway": "0.0.0.0", "DNS": "192.168.1.250", "Domínio": "mstech.com.br", "MAC": "F0:4D:A2:DE:6A:01" } ], "CPU": { "Modelo": "Core(TM)2 Duo CPU E7500 @ 2.93GHz", "Núcleos": 2, "Fabricante": "Intel", "MHz": 2926, "Núcleos por Socket": 2 }, "Memória": [ { "Descrição": "", "Em uso": 3281496, "RAM": 4064, "Total": 4158264, "Livre": 876768 }, { "Descrição": "", "Em uso": 3281496, "RAM": 4064, "Total": 4158264, "Livre": 876768 } ], "HD": [ { "Descrição": "ST3500413AS ATA Device", "Interface": "IDE", "Tamanho": 120736182272, "Serial": "XXX-XXX", Partições: [ { "Unidade": "C:", "Usado": 7183159296, "Total": 120736182272, "Livre": 7183159296 } ] } ], "CDROM": [ { "Descrição": "HL-DT-ST DVDRAM GH22NS70 ATA Device" } ], "Placa-mãe": { "Serial": "1A518TJ1X", "Descrição": "Positivo Informatica SA ( POS-PIQ57BQ )" } }, "Usuário": { "Host": "MS-PRO87", "Usuário": "leonardo.borges" } }, "k4": "1234", "k1": "abcd"
}
JSON Retorno Sucesso (exemplo): {
"rel": "inventory", "href": "/inventories/4349", "type": "application/json"
}
Lista de tipos de dispositivos
Responsável por retornar os tipos de dispositivos definidos no site do blueMonitor.
URL Geral: http://ip_address/devicetypes
GET: Retorna os tipos de dispositivos cadastrados no blueMonitor. Exemplo: http GET http://ip_address/devicetypes
JSON Retorno Sucesso (exemplo) [ { "id": 1, "description": "Servidor" }, { "id": 2, "description": "Computador" }, { "id": 3, "description": "Notebook" }, { "id": 4, "description": "Netbook" }, { "id": 5, "description": "Tablet" }
]
Lista de partes de dispositivos
Responsável por retornar as partes por tipos de dispositivos definidos no site do blueMonitor.
URL Geral: http://ip_address/deviceparts
GET: Retorna as partes de dispositivos cadastrados no blueMonitor, filtrados pela chave k1 do domínio e pelo tipo de dispositivo. Exemplo: http GET http://ip_address/deviceparts?k1=SQA&idDeviceType=1
JSON Retorno Sucesso (exemplo) [ { "id": 7, "description": "Monitor", "mandatory": false, "deviceType": { "rel": "DeviceType", "href": "/devicetype/1", "type": "application/json" }, "fieldsList": [], "k1": "SQA" }, { "id": 8, "description": "Gabinete", "mandatory": true, "deviceType": { "rel": "DeviceType", "href": "/devicetype/1", "type": "application/json" }, "fieldsList": [ { "id": 2, "label": "Série", "mandatory": false, "assignMachineName": false }, { "id": 3, "label": "Observação", "mandatory": false, "assignMachineName": false } ], "k1": "SQA" }
]
Lista de categorias/localizações
Responsável por retornar as categorias/localizações cadastradas no site do blueMonitor.
URL Geral: http://ip_address/categories
GET: Retorna as categorias/localizações cadastradas no blueMonitor. Exemplo: http GET http://ip_address/categories?k1=SQA
JSON Retorno Sucesso (exemplo) [ { "id": 53, "k1": null, "description": "SQA", "type": 0, "fatherId": 0 }, { "id": 54, "k1": null, "description": "CRE ", "type": 1, "fatherId": 53 }, { "id": 55, "k1": null, "description": "Escola ", "type": 2, "fatherId": 54 }, { "id": 56, "k1": null, "description": "Lab. Informática", "type": 3, "fatherId": 55 }, { "id": 137, "k1": null, "description": "Cre2", "type": 0, "fatherId": 53 }, { "id": 138, "k1": null, "description": "lab. informática 2", "type": 0, "fatherId": 55 }, { "id": 139, "k1": null, "description": "Cre 3 marry", "type": 0, "fatherId": 53 }
]
Lista de coordenadorias
Responsável por retornar as coordenadorias.
URL Geral: http://ip_address/coordinations
GET: Retorna as coordenadorias. Exemplo: http GET http://ip_address/coordinations?k1=SQA
JSON Retorno Sucesso (exemplo) [ { "id": "2e58c29c-3cd5-df11-a5c4-00155d0acb0b", "name": "ADAMANTINA" }, { "id": "2f58c29c-3cd5-df11-a5c4-00155d0acb0b", "name": "AMERICANA" }, { "id": "3058c29c-3cd5-df11-a5c4-00155d0acb0b", "name": "ANDRADINA" }
]
Envio de patrimônio (modelo ideal) Responsável por enviar o patrimônio dos dispositivos.
URL Geral: http://ip_address/patrimonies
POST: Cadastra um novo patrimonio. Retorna o código de sucesso (201) e a URL do patrimônio cadastrado ou o código de erro resultante da ação juntamente à mensagem de erro.
Exemplo: http POST http://ip_address/patrimonies JSON do POST: { k1="k1", k4="k4", idCategory="idCategory", idCoordination="idCoordination", schoolCode="code", idDeviceType = "idDeviceType", parts: [ { idPart = “idPart”, serial= “serial”, patrimony= “patrimony”, notes=”notes”, description=”description”
}, { … } ... ] } JSON Retorno Sucesso (exemplo): {
"rel": "patrimony", "href": "/patrimonies/264216235633153", "type": "application/json"
}
PUT: Altera o patrimônio de um dispositivo. Retorna o código de sucesso (200) e a URL do patrimônio alterado ou o código de erro resultante da ação juntamente à mensagem de erro.
Exemplo: http PUT http://ip_address/patrimonies?k4=264216235633153 JSON do PUT: { k1="k1", k4="k4", idCategory="idCategory", idCoordination="idCoordination", schoolCode="code", idDeviceType = "idDeviceType", parts: [ { idPart = “idPart”, serial= “serial”, patrimony= “patrimony”, notes=”notes”, description=”description”
}, { … } ... ] } JSON Retorno Sucesso (exemplo): {
"rel": "patrimony", "href": "/patrimonies/264216235633153", "type": "application/json"
}
Envio de patrimônio (modelo atual) Responsável por enviar o patrimônio dos dispositivos.
URL Geral: http://ip_address/patrimonies
POST: Cadastra um novo patrimonio. Retorna o código de sucesso (201) e a URL do patrimônio cadastrado ou o código de erro resultante da ação juntamente à mensagem de erro.
Exemplo: http POST http://ip_address/patrimonies JSON do POST: { "patrimony": { "K1": "MG", "Coordination": "", "LocationID": 5, "parts": [ { "Notes": "333", "IDPart": 3, "Serial": "22", "Patrimony": "111", "PartName": "Gabinete" }, { "Notes": "444", "IDPart": 4, "Serial": "555", "Patrimony": "6", "PartName": "Monitor" } ], "SchoolID": 1180, "TypeID": 1, "K4": "8796754571883" }
} JSON Retorno Sucesso (exemplo): {
"rel": "patrimony", "href": "/patrimonies/264216235633153", "type": "application/json"
}
PUT: Altera o patrimônio de um dispositivo. Retorna o código de sucesso (201) e a URL do patrimônio alterado ou o código de erro resultante da ação juntamente à mensagem de erro.
Exemplo: http PUT http://ip_address/patrimonies?k4=264216235633153 JSON do PUT: { K1="k1", K4="k4", LocationID="idCategory", Coordination ="idCoordination", SchoolID ="idSchool", TypeID= "idDeviceType", parts: [ { IDPart=“idPart”, Serial=“serial”, Patrimony=“patrimony”, Notes=”notes”, PartName=”description”
}, { … } ... ] } JSON Retorno Sucesso (exemplo): {
"rel": "patrimony", "href": "/patrimonies/264216235633153", "type": "application/json"
}
Busca e ativação da escola
Responsável por retornar informações da escola e por realizar a ativação da escola.
URL Geral: http://ip_address/schools
GET: Retorna os dados da escola cujo código e chave k1 foram passados na URL. Exemplo: http GET http://ip_address/schools?k1=MG&code=1180
JSON Retorno Sucesso { "id": 276, "code": 1180, "k1": "MG", "name": "EE PROFESSOR LEON RENAULT", "type": 2, "coordName": "", "dirName": "METROPOL", "address": "AV AMAZONAS", "city": "BELO HORIZONTE - MG", "k4": null, "quantity": 0
}
POST: Responsável por ativar a escola no blueControlWeb. Retorna o código de sucesso (201) e a URL com o identificador da escola (id data center) ou o código de erro resultante da ação juntamente à mensagem de erro.
Exemplo: http POST http://ip_address/schools JSON do POST: { k1: “k1”, k4: “k4”, code: “code”, quantity: “quantity”
} JSON Retorno Sucesso (exemplo): {
"rel": "school", "href": "/schools/264", "type": "application/json"
}
PUT: Responsável por ativar a escola no blueControlWeb. Retorna o código de sucesso e a URL com o identificador da escola (id data center) ou o código de erro resultante da ação juntamente à mensagem de erro.
Exemplo: http PUT http://ip_address/schools/264 JSON do PUT: { “id”:”id_datacenter” “k1”: “k1”, “k4”: “k4”, “code”: “code”, “quantity": “quantity”
} JSON Retorno Sucesso (exemplo): {
"rel": "school", "href": "/schools/264", "type": "application/json"
}
Configurações de suporte remoto Responsável por retornar as configurações de suporte remoto.
URL Geral: http://ip_address/SupportConfigurations
GET: Associa a máquina ao blueSupport e retorna as configurações de suporte remoto. Exemplo: http GET http://ip_address/SupportConfigurations?k1=SQA&k4=264216235
JSON Retorno Sucesso { "k1": "SQA", "numberOfTries": 15, "keyContent": "A6bA3f9u3Lnydl20PXNrMUaDA7WQ7bAvib6cwyJ=", "keyPath": "/PWr5KSb6dLb2JZP617BmrG2zYmv32h9K0eD5hGoKU="
} Suporte remoto Responsável por retornar e atualizar as informações de suporte remoto.
URL Geral: http://ip_address/Supports
GET: Retorna as informações de suporte remoto. Exemplo: http GET http://ip_address/Supports?k1=SQA&k4=386145320948174629
JSON Retorno Sucesso { "k1": "SQA", "k4": "386145320948174629", "id": 505, "status": 5000, "time": 0, "serverName": null, "sshPort": null, "sshUser": null, "remoteDevicePort": 0, "serverPort": 0, "accessPort": 0, "error": null
}
PUT: Responsável por atualizar o status do suporte remoto. Retorna o código de sucesso (200) e a URL com o identificador do suporte ou o código de erro resultante da ação juntamente à mensagem de erro.
Exemplo: http PUT http://ip_address/Supports JSON do PUT: {
“id”: 5321, “k4”: “13513413115”, “status”: 1000, “error”: “”, “time”: 120, “serverName”: “suporte.blueonline.com.br”, “sshPort”: [22, 25, 443], “sshUser”: “user_bluesupport”, “remoteDevicePort”: 15500, “serverPort”: 9031, “accessPort”: 9031 } JSON Retorno Sucesso (exemplo): {
"rel": "support", "href": "/supports/26", "type": "application/json"
} Antifurto Responsável pelo rastreio dos dispositivos. URL Geral: http://ip_address/antitheft
GET: Retorna as informações sobre rastreio, se deve ser iniciado ou interrompido e a frequência de envio. Exemplo: http GET http://ip_address/antitheftConfigurations?k1=SQA&k4=123 JSON Retorno Sucesso: { "k1": "SQA", "k4": "123", "trackFrequency": "", "photoFrequency": "" }
POST: Responsável por enviar informações de rastreio para o bluemonitor. Exemplo: http PUT http://ip_address/antitheftTracks
JSON do POST: { "k1": "SQA", "k4": "123", "externalIp: "", "latitude": "", "longitude": "" }
JSON Retorno Sucesso (exemplo): {
"rel": "AntitheftTrack", "href": "/AntitheftTracks/1", "type": "application/json"
}
POST: Responsável por enviar fotografia do usuário para o blueMonitor. Exemplo: http POST http://ip_address/antitheftPhotoFiles
JSON do POST: { "photo": "" }
JSON Retorno Sucesso (exemplo): {
"rel": "AntitheftPhoto", "href": "/AntitheftPhotos/1", "type": "application/json"
}
PUT: Responsável por enviar os metadados da foto, contendo o ID obtido na requisição anterior. Exemplo:
http PUT http://ip_address/antitheftPhotos JSON do PUT: { "k1": "SQA", "k4": "123", "id": "1" }
JSON Retorno Sucesso (exemplo): {
"rel": "AntitheftPhoto", "href": "/AntitheftPhotos/1", "type": "application/json"
} Updrive Responsável pelo envio de informações referentes às imagens dos clientes pelo servidor da escola. URL Geral: http://ip_address/updriveImage
POST: Responsável por enviar informações de imagens para o blueMonitor. Campos que estão com a formatação tachado não serão utilizados pelo blueMonitor, porém o último arquivo recebido por servidor será salvo fisicamente. Exemplo: http POST http://ip_address/updriveImages
JSON do POST: {
"k4": "00620330", "k1": "sqa",
"clients_offline": [ { "id": 1, "k4": "10620330", "mac_address": "10:78:D2:66:8F:30", "powered": false, "_mac_address": 289724843855664, "deltas"³: [ { "href": "deltas_offline/10" }, { "href": "deltas_offline/11" } ], "name": "TesteSystray", "image": null, "image_id": null, "type_id"¹: 2, "_ip": 3232242191, "ip": "192.168.26.15" }, { "id": 2, "k4": "20620330", "mac_address": "44:87:FC:12:48:5F", "powered": false, "_mac_address": 1205550009436255, "deltas"³: [ { "href": "deltas_offline/7" } ], "name": "cmOfflineSemArq", "image": null, "image_id": null, "type_id"¹: 2, "_ip": 3232242323, "ip": "192.168.26.147" } ], "groups_offline": [ { "id": 1, "name": "Windows admin", "image": { "href": "images_offline/1" }, "type": { "href": "model_type/2" }, "head": "d16a05e0", "image_id": 1, "type_id"¹: 2 }, { "id": 2, "name": "Linux root", "image": { "href": "images_offline/2" }, "type": { "href": "model_type/2" }, "head": "da47440d", "image_id": 2, "type_id"¹: 2 } ], "deltas_offline": [ { "id": 1, "hash_after": "abaca1234", "hash_before": "abaca1234", "desc": "Initial Delta for image_id 1", "level": 0, "group_id": 1, "image": { "href": "images_offline/1" }, "rollback": false, "type": { "href": "model_type/2" }, "group": { "href": "groups_offline/1" }, "image_id": 1, "type_id"¹: 2 }, { "id": 2, "hash_after": "dacabac34", "hash_before": "dacabac34", "desc": "Initial Delta for image_id 2", "level": 0, "group_id": 2, "image": { "href": "images_offline/2" }, "rollback": false, "type": { "href": "model_type/2" }, "group": { "href": "groups_offline/2" }, "image_id": 2, "type_id"¹: 2 }, { "id": 3, "hash_after": "dea61d47", "hash_before": "dacabac34", "desc": "delta01 linux", "level": 0, "group_id": 2, "image": { "href": "images_offline/2" }, "rollback": true, "type": { "href": "model_type/2" }, "group": { "href": "groups_offline/2" }, "image_id": 2, "type_id"¹: 2 } ], "images_offline": [ { "os_type_id"²: 1, "id": 1, "icon": "windows7.png", "name": "Windows 7", "updating": false, "type_id"¹: 2, "os_type": { "href": "os_type/1" } }, { "os_type_id"²: 2, "id": 2, "icon": "linux.png", "name": "Linux", "updating": false, "type_id"¹: 2, "os_type": { "href": "os_type/2" } } ]
} JSON Retorno Sucesso (exemplo): {
"rel": "updriveImage", "href": "/updriveImages/00620330", "type": "application/json"
} ¹type_id: Identificador do tipo de versão: 1 para Online e 2 para Offline. ²os_type_id: Identificador do tipo de sistema operacional da imagem: 1 para Windows e 2 para Linux. ³deltas: Lista contendo as atualizações do computador (cliente) para cada imagem que ele possua. Apenas a ultima atualização de cada imagem é salva. Ex: Atualizações do Windows e do Linux.