NAME
Business::SLA -
SYNOPSIS
use Business::SLA;
my $SLAObj = Business::SLA->new(
BusinessHours => new Business::Hours,
InHoursDefault => '2 real hours',
OutOfHoursDefault => '1 business hour',
);
# or set/change options later
$SLAObj->SetBusinessHours( new Business::Hours );
$SLAObj->SetInHoursDefault('2 real hours');
$SLAObj->SetOutOfHoursDefault('1 business hour');
# add service levels
$SLAObj->Add( '2 real hours' => RealMinutes => 2*60 );
$SLAObj->Add( '1 business hour' => BusinessMinutes => 60 );
$SLAObj->Add( 'next business minute' );
DESCRIPTION
This module is a simple tool for handling operations related to Service Level Agreements.
METHODS
new
Creates and returns new Business::SLA object.
Takes a hash with values of "BusinessHours", "InHoursDefault" and "OutOfHoursDefault" options. You can ommit these options and set them latter using methods (see below).
SetBusinessHours
Sets a Business::Hours object to use for calculations. This module works without this option, but looses most functionality you can get with it.
It's possible use any object that API-compatible with Business::Hours.
BusinessHours
Returns the current Business::Hours object or undef if it's not set.
SetInHoursDefault
Sets the default service level for times inside of business hours.
Takes a service level.
InHoursDefault
Returns the default service level for times inside of business hours.
SetOutOfHoursDefault
Sets the default service level for times outside of business hours.
Takes a service level.
Note that "BusinessHours" are used for calculations, so this option makes not much sense without business hours have been set.
OutOfHoursDefault
Returns the default service level for times outside of business hours.
IsInHours
Returns true if the date passed in is in business hours, and false otherwise. If no business hours have been set, returns true by default.
Takes a date in Unix time format (number of seconds since the epoch).
SLA
Returns the default servise level for the specified time.
Takes a date in Unix time format (number of seconds since the epoch).
Add
Adds or replaces a service level definition.
Takes a service level and a hash with agreements. In the hash you can define BusinessMinutes, RealMinutes and StartImmediately boolean option.
AddRealMinutes
The number of real minutes to add for the specified SLA.
Takes a service level.
AddBusinessMinutes
The number of business minutes to add for the specified SLA.
Takes a service level.
StartImmediately
Returns true if things should be started immediately for a service level. See also Add and "Starts".
Takes the service level.
Starts
Returns the starting time, given a date and a service level.
If the service level's been defined as StartImmediately then returns the same date, as well this also happens if business hours are not set.
Takes a date in Unix time format (number of seconds since the epoch) and a service level.
Due
Returns the due time, given an SLA and a date.
Takes a date in Unix time format (number of seconds since the epoch) and the hash key for the SLA.
SUPPORT
Send email to bug-business-sla@rt.cpan.org
AUTHOR
Linda Julien
Best Practical Solutions, LLC
leira@bestpractical.com
http://www.bestpractical.com
COPYRIGHT
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
SEE ALSO
perl(1), Business::Hours.