Get batch of devices
Relative path: /v1/devices:batchGet
Retrieves specific set of devices at a consistent time point.
Modeled after https://google.aip.dev/231
Query parameters
Name |
Type |
Description |
---|---|---|
devicesUuids |
array |
Identifiers of device to retrieve. If empty, INVALID_ARGUMENT is returned. The operation is atomic - no partial success. Either every requested device is returned, or none. |
Responses
Display Schema instead of an Example or vice-versa
Code |
Description |
Example |
Schema |
---|---|---|---|
200 |
A successful response. |
{ "devices": [ { "deployedComponents": [ { "displayName": "string", "version": { "id": "string", "major": 0, "minor": 0, "name": "string", "patch": 0 }, "id": 0, "name": "string" } ], "description": "string", "deviceToken": "string", "displayName": "string", "hardwareProfiles": [ { "bios": { "manufacturer": "string", "serialNumber": "string", "uuid": "string" }, "hardDrives": [ { "malformedData": "string", "serialNumber": "string" } ], "malformedData": "string", "manufacturer": "string", "model": "string", "networkAdapters": [ { "caption": "string", "macAddress": "string", "malformedData": "string" } ], "processors": [ { "architecture": "CPU_ARCHITECTURE_UNSPECIFIED", "caption": "string", "id": "string", "malformedData": "string", "manufacturer": "string" } ], "resettableIdentifier": "string", "salt": "string" } ], "lastSyncTime": "string", "managementDomain": "string", "operatingSystem": { "bitness": 0, "displayName": "string", "editionId": 0, "familyId": 0, "version": { "id": "string", "major": 0, "minor": 0, "name": "string", "patch": 0 } }, "originalDisplayName": "string", "tags": [ "string" ], "uuid": "string" } ] } |
{ "$ref": "v1BatchGetDevicesResponse", "devices": [ { "$ref": "v1Device", "deployedComponents": [ { "$ref": "v1PlatformComponent", "description": "Descriptor of platform component with version. Info: Should we track modules, they will be here.", "displayName": { "type": "string", "description": "Human readable name of the component. Derived from package display_name." }, "version": { "$ref": "v1Version", "description": "Version descriptor. Both values are required to completely reconstruct version information.", "id": { "type": "string", "description": "[Version id] determines whether one version is more recent than another. More recent versions have higher numbers. Can be processed by machine. If human readable version_name meets certain criteria, it can be converted to version_id automatically. The cases are: A.B.C.D => VersionId = (A & 0xffff) << 48 | (B & 0xffff) << 32 | (C & 0xffff) << 16 | (D & 0xffff) A.B.C => VersionId = (A & 0xffff ) << 48 | (B & 0xffff) << 32 | (C & 0xffff) <<16 Major.Minor.Patch => VersionId = (Major & 0xffff ) << 48 | (Minor & 0xffff) << 32 | (Patch & 0xffff) <<16 Eula.VersionId = Eula.MajorVersion << 48 | Eula.MinorVersion << 32 | EulaPatch << 16 Windows.VersionId = MajorVersion << 48 | MinorVersion << 32 | ServicePackMajor << 24 | ServicePackMinor << 16 | CurrentBuildNumber WindowsPhone.VersionId = A << 48 | B << 32 | C << 12 | D openSUSE Tumbleweed.VersionId = YYYY << 48 | MM << 64 | DD < 32 | 0x0000 Amazon Linux.VersionId = YYYY << 48 | MM << 64 | 0x00000000", "format": "uint64" }, "major": { "type": "integer", "description": "Major version if version.name adheres to semantic versioning. Empty otherwise.", "format": "int64" }, "minor": { "type": "integer", "description": "Minor version if version.name adheres to semantic versioning. Empty otherwise.", "format": "int64" }, "name": { "type": "string", "description": "Human readable name of the version. E.g. '10.2.3.145'" }, "patch": { "type": "integer", "description": "Patch if version.name adheres to semantic versioning. Empty otherwise.", "format": "int64" } }, "id": { "type": "integer", "description": "Identifier of governed resource. Can be seen as a value of item in enumerated type. It can be derived from name by some algorithm such as CRC32.", "format": "int64" }, "name": { "type": "string", "description": "" } } ], "description": { "type": "string", "description": "Device description." }, "deviceToken": { "title": "Identity token for device", "type": "string" }, "displayName": { "title": "Name given by user to identify device", "type": "string" }, "hardwareProfiles": [ { "$ref": "v1Hardware", "description": "It can also be used to uniquely identify the device within pool of all devices seen by ESET. Warning: For fingerprint use-case the values must be anonymized by using [SHA-256] hash and passed as 7-bit ASCII strings (containing only hexadecimal numbers and dashes possibly). This is GDPR requirement.", "bios": { "$ref": "v1Bios", "manufacturer": { "title": "BIOS manufacturer", "type": "string", "description": "e.g. value LENOVO obtained by calling: Windows: wmic path win32_computersystemproduct get vendor" }, "serialNumber": { "title": "BIOS serial number", "type": "string", "description": "e.g. value MP10DQAF obtained by calling: Windows: wmic path win32_computersystemproduct get IdentifyingNumber" }, "uuid": { "title": "UUID of BIOS", "type": "string", "description": "e.g. value 99AAEECC-2C47-12CC-F85C-A0080C7BDC23 obtained by calling: Windows: wmic path win32_computersystemproduct get uuid" } }, "hardDrives": [ { "$ref": "v1HardDrive", "malformedData": { "type": "string", "description": "List of singular attributes where reading failed or returned strange value. For more info about FiledMask usage see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask" }, "serialNumber": { "title": "Drive serial number", "type": "string", "description": "e.g. value 0025_3865_6AE0_AF38 obtained by calling: Windows: wmic diskdrive get SerialNumber" } } ], "malformedData": { "type": "string", "description": "List of singular attributes where reading failed or returned strange value. Info: FieldMask is unable to address array members so it must be present in every nested repeated field. In case of this message: hard_drives, network_adapters and processors have their own nested masks too. For more information about FieldMask usage, refer to https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask" }, "manufacturer": { "title": "Vendor of the hardware", "type": "string" }, "model": { "title": "Model identifier of the hardware", "type": "string" }, "networkAdapters": [ { "$ref": "v1NetworkAdapter", "caption": { "title": "Name of adapter", "type": "string", "description": "e.g. value Intel(R) Dual Band Wireless-AC 8260 obtained by calling: Windows: wmic nic get Caption" }, "macAddress": { "title": "MAC address - can be changed manually", "type": "string", "description": "e.g. value 24:3A:21:52:41:53 obtained by calling: Windows: wmic nic get MACAddress" }, "malformedData": { "type": "string", "description": "List of singular attributes where reading failed or returned strange value. For more info about FiledMask usage see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask" } } ], "processors": [ { "$ref": "v1Processor", "architecture": { "$ref": "v1CpuArchitecture", "title": "Processor architecture", "type": "string", "description": "Note: Cannot be named ProcessorArchitecture because of conflict with Windows SDK, winnt.h, BUILD Version 0072. Series of macros prefixed PROCESSOR_ARCHITECTURE at line 12703 partially eclipse proto definition. Moreover UKNOWN value is of value 0xffff what makes it incompatible with proto requirement to have it 0x0000. CPU_ARCHITECTURE_UNSPECIFIED: fallback CPU_ARCHITECTURE_X86: 32-bit x86 architecture CPU_ARCHITECTURE_X64: 64-bit x86 architecture CPU_ARCHITECTURE_ARM32: 32-bit ARM architecture CPU_ARCHITECTURE_ARM64: 64-bit ARM architecture", "default": "CPU_ARCHITECTURE_UNSPECIFIED", "enum": [ "CPU_ARCHITECTURE_UNSPECIFIED", "CPU_ARCHITECTURE_X86", "CPU_ARCHITECTURE_X64", "CPU_ARCHITECTURE_ARM32", "CPU_ARCHITECTURE_ARM64" ] }, "caption": { "title": "CPU/GPU name", "type": "string", "description": "e.g. value Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz obtained by calling: Windows: wmic cpu get Name" }, "id": { "title": "wmic cpu get ProcessorId", "type": "string", "description": "https://stackoverflow.com/questions/1101772/win32-processoris-processorid-unique-for-all-computers" }, "malformedData": { "type": "string", "description": "List of singular attributes where reading failed or returned strange value. Info: FieldMask cannot address array members, so it must be present in every nested repeated field. For more info about FieldMask usage see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask" }, "manufacturer": { "title": "CPU/GPU vendor", "type": "string", "description": "e.g. value GenuineIntel obtained by calling: Windows: wmic cpu get manufacturer" } } ], "resettableIdentifier": { "type": "string", "description": "Resettable hardware identifier (for example might not survive factory reset). Some operating systems do not provide access to non-resettable hardware identifiers at all or they do in restricted manner. For more info see: https://developer.android.com/training/articles/user-data-ids#best-practices-android-identifiers or: https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor" }, "salt": { "title": "Salt used for unreliable hardware to make it visible among other unrealiable hardware", "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$", "type": "string", "format": "byte" } } ], "lastSyncTime": { "type": "string", "description": "When the device was synchronized for the last time. For remote management this time also means LastSeenTime, LastActiveTime, LastConnectTime etc.", "format": "date-time", "readOnly": true }, "managementDomain": { "title": "Domain identifier (might help to resolve conflicts) - ESMC, ERA, EPC, ECA, ... use hash of master seat id here - Windows domain might go here", "type": "string", "description": "Note: Domain does not scope uniqueness of hardware identifiers. They are still globally unique. Domain helps clustering algorithm to better determine right identity by limiting the scope of possibilities. Feedback commands ([i-ecp] Report Hardware Idenity Crisis and [i-ecp] Report Hardware Identity Collision) improve detection within domain." }, "operatingSystem": { "$ref": "v1OperatingSystem", "description": "Descriptor of Operating System present on the device.", "bitness": { "type": "integer", "description": "Bitness of the operating system. e.g. - 32 - 64", "format": "int64" }, "displayName": { "type": "string", "description": "Human readable name of the operating system. e.g. - Mac OS X 10.8 Mountain Lion - Microsoft Windows 10 Enterprise 2015 LTSB" }, "editionId": { "type": "integer", "description": "Server or Desktop? That's the question. Id comes from [os_catalog]. Well known values are: 0 = unspecified (fallback) 1 = Server edition of operating system, e.g. Red Hat Enterprise Linux Server 2 = Client edition of operating system, e.g. Windows 11 3 = Mobile edition of operating system, e.g. Android or iOS 4 = Core edition without GUI, e.g. Microsoft Server Core", "format": "int64" }, "familyId": { "type": "integer", "description": "Family of operating system from [os_catalog]. Info: Modeled after https://en.wikipedia.org/wiki/Category:Operating_system_families. Well known values are: 0 = unspecified (fallback) 1 = Windows family of operating systems 2 = Linux family of operating systems 3 = Apple family of operating systems, e.g. OS X or iOS 4 = Android family of operating systems 5 = Windows mobile family 6 = Symbian family 7 = UNIX, including FreeBSD", "format": "int64" }, "version": { "$ref": "v1Version", "description": "Version descriptor. Both values are required to completely reconstruct version information.", "id": { "type": "string", "description": "[Version id] determines whether one version is more recent than another. More recent versions have higher numbers. Can be processed by machine. If human readable version_name meets certain criteria, it can be converted to version_id automatically. The cases are: A.B.C.D => VersionId = (A & 0xffff) << 48 | (B & 0xffff) << 32 | (C & 0xffff) << 16 | (D & 0xffff) A.B.C => VersionId = (A & 0xffff ) << 48 | (B & 0xffff) << 32 | (C & 0xffff) <<16 Major.Minor.Patch => VersionId = (Major & 0xffff ) << 48 | (Minor & 0xffff) << 32 | (Patch & 0xffff) <<16 Eula.VersionId = Eula.MajorVersion << 48 | Eula.MinorVersion << 32 | EulaPatch << 16 Windows.VersionId = MajorVersion << 48 | MinorVersion << 32 | ServicePackMajor << 24 | ServicePackMinor << 16 | CurrentBuildNumber WindowsPhone.VersionId = A << 48 | B << 32 | C << 12 | D openSUSE Tumbleweed.VersionId = YYYY << 48 | MM << 64 | DD < 32 | 0x0000 Amazon Linux.VersionId = YYYY << 48 | MM << 64 | 0x00000000", "format": "uint64" }, "major": { "type": "integer", "description": "Major version if version.name adheres to semantic versioning. Empty otherwise.", "format": "int64" }, "minor": { "type": "integer", "description": "Minor version if version.name adheres to semantic versioning. Empty otherwise.", "format": "int64" }, "name": { "type": "string", "description": "Human readable name of the version. E.g. '10.2.3.145'" }, "patch": { "type": "integer", "description": "Patch if version.name adheres to semantic versioning. Empty otherwise.", "format": "int64" } } }, "originalDisplayName": { "type": "string", "description": "Original display name shows the name of the device as it was originally retrieved from the source (e.g. operating system). This name is likely used in device directory (e.g. Active Directory) and it is useful in support scenarios. Example: 'BTS9955454' (such a name would likely get renamed by an user to something more friendly).", "readOnly": true }, "tags": [ { "type": "string" } ], "uuid": { "type": "string", "description": "Universally Unique Identifier References use this identifier so it must be filled in all the cases except resource creation. Compliant with RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace Formatted according to template xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, as explained on wikipedia. For example: '123e4567-e89b-12d3-a456-426614174000'" } } ] } |
default |
An unexpected error response. |
{ "code": 0, "message": "string", "details": [ { "@type": "string" } ] } |
{ "$ref": "rpcStatus", "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "details": [ { "$ref": "protobufAny", "@type": { "type": "string" } } ] } |
202 |
Response took too long and the request was cached. |
null |
[] |