The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

WWW::Giraffi::API::Item - Giraffi API Item Method Item Module

VERSION

0.2_04

SYNOPSIS

  use strict;
  use warnings;
  use WWW::Giraffi::API;
  
  my $apikey = "ilovenirvana_ilovekurtcobain";
  my $g = WWW::Giraffi::API->new(apikey => $apikey);
  # get all item data
  my $arrayref = $g->item->all;
  foreach $ref(@{$arrayref}) {
      ## anything to do...
  }

DESCRIPTION

WWW::Giraffi::API::Item is Giraffi API Item Method Access Module

METHOD

all

Get All Item Setting

Example:

  $ create item object
  my $item = $g->item;
  my $arrayref = $item->all;

Return Array Reference:

  [
    {
      item => {
       warninginterval => 60,
       warningretry => 2,
       status => 1,
       ip => '127.0.0.1',
       name => 'Test Monitoring',
       allowcopy => bless( do{\(my $o = 1)}, 'JSON::XS::Boolean' ),
       host => 'localhost',
       user_id => 16,
       id => 5,
       normalinterval => 120,
       customkey' => undef
      }
    }
  ]

Get Item Setting

Example:

  my $conditions = { 'name' => 'Test Monitoring' };
  my $arrayref = $item->search($conditions);

Return Array Reference:

  # only conditions match
  [
    {
      item => {
       warninginterval => 60,
       warningretry => 2,
       status => 1,
       ip => '127.0.0.1',
       name => 'Test Monitoring',
       allowcopy => bless( do{\(my $o = 1)}, 'JSON::XS::Boolean' ),
       host => 'localhost',
       user_id => 16,
       id => 5,
       normalinterval => 120,
       customkey' => undef
      }
    }
  ]

find

Get One Item Setting

Example:

  my $item_id = 1;
  my $ref = $item->find($item_id);

Return Reference:

  {
      item => {
       warninginterval => 60,
       warningretry => 2,
       status => 1,
       ip => '127.0.0.1',
       name => 'Test Monitoring',
       allowcopy => bless( do{\(my $o = 1)}, 'JSON::XS::Boolean' ),
       host => 'localhost',
       user_id => 16,
       id => 5,
       normalinterval => 120,
       customkey' => undef
      }
  }

find_service

Get all services related to an item, specified by an item id parameter.

Example:

  my $item_id = 5;
  my $arrayref = $item->find_service($item_id);

Return Array Reference:

  [
    {
      service => {
          warninginterval => 60,
          options => {},
          warningretry => 2,
          status => 1,
          item_id => 5,
          id => 7,
          normalinterval => 120,
          servicetype => 'web_response_time'
      }
   }
 ]

find_agent

Downloads an agent (Shell script) that can collect and post system performance statistics from the specified host.

Example:

  my $item_id = 5;
  my $content = $item->find_agent($item_id);

$content is shell script string. see https://github.com/giraffi/giraffi/wiki/Giraffi-REST-API-Resources#wiki-get_items_item_id_agent

create

Post Item Setting

Example:

  my $conditions = {
        name => 'Test Monitoring',
        host => "f00-196.238.145.203.fs-user.net",
        ip => "203.145.238.196",
        normalinterval => 120,
        warninginterval => 60,
        warningretry => 2,
        status => 1,
     };
  $item->create($conditions);

update

Update Item Setting

Example:

  my $item_id = 1;
  my $conditions = { name => 'Emergency Monitoring' };
  $item->update($item_id, $conditions);

destroy

Delete Item Setting

Example:

  my $item_id = 1;
  $item->delete($item_id);

reload

Item/Service/Trigger all setting reload

Example:

  $item->reload;

add_service

Adds a new service to an item, specified by an item id parameter

Example:

  my $item_id = 2;
  my $service_conditions = {
      servicetype => "web_response_time",
      normalinterval => 120,
      warninginterval => 60,
      warningretry => 2,
      status => 1,
      options => {}
  };
  $item->add_service($item_id, $service_conditions);

remove_service

Deletes the specified service using the service id parameter from an item, specified by an item id parameter.

Example:

  my $item_id = 100;
  my $service_id = 2;
  $item->remove_service($item_id, $service_id);

AUTHOR

Akira Horimoto <emperor@gmail.com>

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.