---
name: "Zabbix::API::Item"
section: "3pm"
platform: "linux"
package: "libzabbix-api-perl"
version: "0.009-1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/Zabbix::API::Item"
---

# Zabbix::API::Item(3pm)

## NAME

Zabbix::API::Item -- Zabbix item objects

## SYNOPSIS

```
  use Zabbix::API::Item qw/:item_types/;
  # fetch a single item...
  my $item = $zabbix->fetch('Item', params => { filter => { itemid => 22379 } })->[0];
  # manipulate its properties...
  $item->data->{multiplier} = 3;
  # and update the properties on the server.
  $item->push;
  # fetch all items from a host
  my $host = $zabbix->fetch('Host', params => { filter => { hostid => 10105 } })->[0];
  my $items = $host->items;
  # create a new item
  my $new_item = Zabbix::API::Item->new(
      root => $zabbix,
      data => { type => ITEM_TYPE_SNMPV2C,
                value_type => ITEM_VALUE_TYPE_UINT64,
                snmp_oid => ...,
                snmp_community => ...,
                # that's right, key_
                key_ => 'mynewitem',
                # so far the following is the only way to create a "item belongs
                # to host" relationship
                hostid => $host->id,
      });
  # an itemid will be generated if the item does not already exist
  $new_item->push;
```

## DESCRIPTION

Handles CRUD for Zabbix item objects.

This is a subclass of `"Zabbix::API::CRUDE"`; see there for inherited methods.

## METHODS

- *collides()*

  Returns true if the item exists with this key on this hostid, false otherwise.

- *host()*

  Accessor for a local `"host"` attribute, which it also happens to set from the server data if it isn't set already.  The host is an instance of `"Zabbix::API::Host"`.

- *graphs()*

  Like `"host()"`, returning an arrayref of `"Zabbix::API::Graph"` instances in which this item is involved.

- history(PARAMS)

  Accessor for the item's history data.  Calling this method does not store the history data into the object, unlike other accessors.  History data is an AoH:

  ```
    [ { itemid => ITEMID,
        clock => UNIX_TIMESTAMP,
        value => VALUE }, ... ]
  ```

  `"PARAMS"` should be a hash containing arguments for the `"history.get"` method (see here: \<http://www.zabbix.com/documentation/1.8/api/history/get\>).  The time\_from and time\_till keys (with UNIX timestamps as values) are mandatory. The `"itemids"` and `"output"` parameters are already set and cannot be overwritten by the contents of `"PARAMS"`.

- delay(NEW\_DELAY)

  Mutator for the item's `"delay"` value; that is, the polling period in seconds.  This is just a shortcut to set `"delay"` in the `"data"` hashref.  The method doesn't call `"pull()"` or `"push()"`, you need to do it manually.

  Returns the newly-set value.

## EXPORTS

Way too many constants, but for once they're documented (here: \<http://www.zabbix.com/documentation/1.8/api/item/constants\>).

Nothing is exported by default; you can use the tags `":item_types"`, `":value_types"`, `":data_types"` and `":status_types"` (or import by name).

## BUGS AND ODDITIES

This is probably because of the extremely smart way the Zabbix team has set up their database schema, but what you'd expect to be `"key"` in an item's data is actually `"key_"`.

## SEE ALSO

Zabbix::API::CRUDE.

## AUTHOR

Fabrice Gabolde \<fabrice.gabolde@uperto.com\>

## COPYRIGHT AND LICENSE

Copyright (C) 2011 SFR

This library is free software; you can redistribute it and/or modify it under the terms of the GPLv3.
