Attributes are defined by method _attributes that should be defined in your class. This method returns a reference to a hash whose keys are the attributes. The values of the hash are attribute settings, which are as follows:

This specifies this attribute's REST name. For example, attribute "final_priority" corresponds to RT REST's "FinalPriority". This option may be omitted if the two only differ in first letter capitalization.

Convenience methods "add_attr" and "delete_attr" are available. For example:

# Get the list
my @requestors = $ticket->requestors;
# Replace with a new list
$ticket->requestors( [qw(dude@localhost)] );
# Add some random guys to the current list
$ticket->add_requestors('randomguy@localhost', 'evil@local');

This class method generates accessors and mutators based on _attributes method which your class should provide. For items that are lists, 'add_' and 'delete_' methods are created. For instance, the following two attributes specified in _attributes will generate methods 'creator', 'cc', 'add_cc', and 'delete_cc':

Convert the object to 'form' (used by REST protocol). This is done based on _attributes method. If $all is true, create a form from all of the object's attributes and custom flags, otherwise use only dirty (see _dirty method) attributes and custom flags. Defaults to the latter.

Given no arguments, returns the list of custom field names. With one argument, returns the value of custom field $name. With two arguments, sets custom field $name to $value. Given a reference to a hash, uses it as a list of custom fields and their values, returning the new list of all custom field names.

This method is used for searching objects. It returns an object of type RT::Client::REST::SearchResult, which can then be used to process results. %opts is a list of key-value pairs, which are as follows:

Turn autoget feature on or off (off by default). When set to on, retrieve() will be automatically called from the constructor if it is called with that object's special attributes (see "SPECIAL ATTRIBUTES" above).

This turns on autosync and autoget. Transparency is a neat idea, but it may be expensive and slow. Depending on your circumstances, you may want a finer control of your objects. Transparency makes retrieve() and store() calls invisible: