hostprototype.update
Description
object hostprototype.update(object/array **hostPrototypes**)
This method allows to update existing host prototypes.
This method is only available to Admin and Super admin user types. Permissions to call the method can be revoked in user role settings. See User roles for more information.
Parameters
(object/array)
Host prototype properties to be updated.
The hostid
property must be defined for each host prototype, all other properties are optional. Only the passed properties will be updated, all others will remain unchanged.
Additionally to the standard host prototype properties, the method accepts the following parameters.
Parameter | Type | Description |
---|---|---|
groupLinks | array | Group links to replace the current group links on the host prototype. |
groupPrototypes | array | Group prototypes to replace the existing group prototypes on the host prototype. |
macros | object/array | User macros to replace the current user macros. All macros that are not listed in the request will be removed. |
tags | object/array | Host prototype tags to replace the current tags. All tags that are not listed in the request will be removed. |
interfaces | object/array | Host prototype custom interfaces to replace the current interfaces. Custom interface object should contain all its parameters. All interfaces that are not listed in the request will be removed. |
templates | object/array | Templates to replace the currently linked templates. The templates must have the templateid property defined. |
Return values
(object)
Returns an object containing the IDs of the updated host prototypes under the hostids
property.
Examples
Disabling a host prototype
Disable a host prototype, that is, set its status to 1.
Request:
{
"jsonrpc": "2.0",
"method": "hostprototype.update",
"params": {
"hostid": "10092",
"status": 1
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"hostids": [
"10092"
]
},
"id": 1
}
Updating host prototype tags
Replace host prototype tags with new ones.
Request:
{
"jsonrpc": "2.0",
"method": "hostprototype.update",
"params": {
"hostid": "10092",
"tags": [
{
"tag": "Datacenter",
"value": "{#DATACENTER.NAME}"
},
{
"tag": "Instance type",
"value": "{#INSTANCE_TYPE}"
}
]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"hostids": [
"10092"
]
},
"id": 1
}
Updating host prototype custom interfaces
Replace inherited interfaces with host prototype custom interfaces.
Request:
{
"jsonrpc": "2.0",
"method": "hostprototype.update",
"params": {
"hostid": "10092",
"custom_interfaces": "1",
"interfaces": [
{
"main": "1",
"type": "2",
"useip": "1",
"ip": "127.0.0.1",
"dns": "",
"port": "161",
"details": {
"version": "2",
"bulk": "1",
"community": "{$SNMP_COMMUNITY}"
}
}
]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": {
"hostids": [
"10092"
]
},
"id": 1
}
See also
Source
CHostPrototype::update() in ui/include/classes/api/services/CHostPrototype.php.