Sidebar

manual:api:reference:hostprototype:update

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.