.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RT::Client::REST::Ticket 3pm" .TH RT::Client::REST::Ticket 3pm "2018-12-26" "perl v5.28.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RT::Client::REST::Ticket \- ticket object representation. .SH "VERSION" .IX Header "VERSION" version 0.56 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& my $rt = RT::Client::REST\->new(server => $ENV{RTSERVER}); \& \& # Create a new ticket: \& my $ticket = RT::Client::REST::Ticket\->new( \& rt => $rt, \& queue => "General", \& subject => $subject, \& )\->store(text => "This is the initial text of the ticket"); \& print "Created a new ticket, ID ", $ticket\->id, "\en"; \& \& # Update \& my $ticket = RT::Client::REST::Ticket\->new( \& rt => $rt, \& id => $id, \& priority => 10, \& )\->store; \& \& # Retrieve \& my $ticket => RT::Client::REST::Ticket\->new( \& rt => $rt, \& id => $id, \& )\->retrieve; \& \& unless ($ticket\->owner eq $me) { \& $ticket\->steal; # Give me more work! \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBRT::Client::REST::Ticket\fR is based on RT::Client::REST::Object. The representation allows one to retrieve, edit, comment on, and create tickets in \s-1RT.\s0 .SH "ATTRIBUTES" .IX Header "ATTRIBUTES" .IP "\fBid\fR" 2 .IX Item "id" This is the numeric \s-1ID\s0 of the ticket. .IP "\fBqueue\fR" 2 .IX Item "queue" This is the \fBname\fR of the queue (not numeric id). .IP "\fBowner\fR" 2 .IX Item "owner" Username of the owner. .IP "\fBcreator\fR" 2 .IX Item "creator" Username of \s-1RT\s0 user who created the ticket. .IP "\fBsubject\fR" 2 .IX Item "subject" Subject of the ticket. .IP "\fBstatus\fR" 2 .IX Item "status" The status is usually one of the following: \*(L"new\*(R", \*(L"open\*(R", \*(L"resolved\*(R", \&\*(L"stalled\*(R", \*(L"rejected\*(R", and \*(L"deleted\*(R". However, custom \s-1RT\s0 installations sometimes add their own statuses. .IP "\fBpriority\fR" 2 .IX Item "priority" Ticket priority. Usually a numeric value. .IP "\fBinitial_priority\fR" 2 .IX Item "initial_priority" .PD 0 .IP "\fBfinal_priority\fR" 2 .IX Item "final_priority" .IP "\fBrequestor\fR" 2 .IX Item "requestor" .PD This is the attribute for setting the requestor on ticket creation. If you use requestors to do this in 3.8, the recipient may not receive an auto-reply from \s-1RT\s0 because the ticket is initially created as the user your \s-1REST\s0 session is connected as. .Sp It is a list attribute (for explanation of list attributes, see \&\fB\s-1LIST ATTRIBUTE PROPERTIES\s0\fR in RT::Client::REST::Object). .IP "\fBrequestors\fR" 2 .IX Item "requestors" This contains e\-mail addresses of the requestors. .Sp It is a list attribute (for explanation of list attributes, see \&\fB\s-1LIST ATTRIBUTE PROPERTIES\s0\fR in RT::Client::REST::Object). .IP "\fBcc\fR" 2 .IX Item "cc" A list of e\-mail addresses used to notify people of 'correspond' actions. .IP "\fBadmin_cc\fR" 2 .IX Item "admin_cc" A list of e\-mail addresses used to notify people of all actions performed on a ticket. .IP "\fBcreated\fR" 2 .IX Item "created" Time at which ticket was created. Note that this is an immutable field and therefore the value cannot be changed.. .IP "\fBstarts\fR" 2 .IX Item "starts" .PD 0 .IP "\fBstarted\fR" 2 .IX Item "started" .IP "\fBdue\fR" 2 .IX Item "due" .IP "\fBresolved\fR" 2 .IX Item "resolved" .IP "\fBtold\fR" 2 .IX Item "told" .IP "\fBtime_estimated\fR" 2 .IX Item "time_estimated" .IP "\fBtime_worked\fR" 2 .IX Item "time_worked" .IP "\fBtime_left\fR" 2 .IX Item "time_left" .IP "\fBlast_updated\fR" 2 .IX Item "last_updated" .PD .SS "Attributes storing a time" .IX Subsection "Attributes storing a time" The attributes which store a time stamp have an additional accessor with the suffix \f(CW\*(C`_datetime\*(C'\fR (e.g. \f(CW\*(C`resolved_datetime\*(C'\fR). This allows you can get and set the stored value as a DateTime object. Internally, it is converted into the date-time string which \s-1RT\s0 uses, which is assumed to be in \s-1UTC.\s0 .SH "DB METHODS" .IX Header "DB METHODS" For full explanation of these, please see \fB\*(L"\s-1DB METHODS\*(R"\s0\fR in RT::Client::REST::Object documentation. .IP "\fBretrieve\fR" 2 .IX Item "retrieve" Retrieve \s-1RT\s0 ticket from database. .IP "\fBstore ([text => \f(CB$text\fB])\fR" 2 .IX Item "store ([text => $text])" Create or update the ticket. When creating a new ticket, optional 'text' parameter can be supplied to set the initial text of the ticket. .IP "\fBsearch\fR" 2 .IX Item "search" Search for tickets that meet specific conditions. .SH "TICKET-SPECIFIC METHODS" .IX Header "TICKET-SPECIFIC METHODS" .ie n .IP "\fBcomment\fR (message => $message, %opts)" 2 .el .IP "\fBcomment\fR (message => \f(CW$message\fR, \f(CW%opts\fR)" 2 .IX Item "comment (message => $message, %opts)" Comment on this ticket with message \f(CW$message\fR. \f(CW%opts\fR is a list of key-value pairs as follows: .RS 2 .IP "\fBattachments\fR" 2 .IX Item "attachments" List of filenames (an array reference) that should be attached to the ticket along with the comment. .IP "\fBcc\fR" 2 .IX Item "cc" List of e\-mail addresses to send carbon copies to (an array reference). .IP "\fBbcc\fR" 2 .IX Item "bcc" List of e\-mail addresses to send blind carbon copies to (an array reference). .RE .RS 2 .RE .ie n .IP "\fBcorrespond\fR (message => $message, %opts)" 2 .el .IP "\fBcorrespond\fR (message => \f(CW$message\fR, \f(CW%opts\fR)" 2 .IX Item "correspond (message => $message, %opts)" Add correspondence to the ticket. Takes exactly the same arguments as the \fBcomment\fR method above. .IP "\fBattachments\fR" 2 .IX Item "attachments" Get attachments associated with this ticket. What is returned is an object of type RT::Client::REST::SearchResult which can then be used to get at objects of type RT::Client::REST::Attachment. .IP "\fBtransactions\fR" 2 .IX Item "transactions" Get transactions associated with this ticket. Optionally, you can specify exactly what types of transactions you want listed, for example: .Sp .Vb 1 \& my $result = $ticket\->transactions(type => [qw(Comment Correspond)]); .Ve .Sp Please reference RT::Client::REST documentation for the full list of valid transaction types. .Sp Return value is an object of type RT::Client::REST::SearchResult which can then be used to iterate over transaction objects (RT::Client::REST::Transaction). .IP "\fBtake\fR" 2 .IX Item "take" Take this ticket. If you already the owner of this ticket, \&\f(CW\*(C`RT::Client::REST::Object::NoopOperationException\*(C'\fR will be thrown. .IP "\fBuntake\fR" 2 .IX Item "untake" Untake this ticket. If Nobody is already the owner of this ticket, \&\f(CW\*(C`RT::Client::REST::Object::NoopOperationException\*(C'\fR will be thrown. .IP "\fBsteal\fR" 2 .IX Item "steal" Steal this ticket. If you already the owner of this ticket, \&\f(CW\*(C`RT::Client::REST::Object::NoopOperationException\*(C'\fR will be thrown. .SH "CUSTOM FIELDS" .IX Header "CUSTOM FIELDS" This class inherits 'cf' method from RT::Client::REST::Object. To create a ticket with a bunch of custom fields, use the following approach: .PP .Vb 8 \& RT::Client::REST::Ticket\->new( \& rt => $rt, \& # blah blah \& cf => { \& \*(Aqfield one\*(Aq => $value1, \& \*(Aqfield two\*(Aq => $another_value, \& }, \& )\->store; .Ve .PP Some more examples: .PP .Vb 3 \& # Update a custom field value: \& $ticket\->cf(\*(Aqfield one\*(Aq => $value1); \& $ticket\->store; \& \& # Get a custom field value: \& my $another value = $ticket\->cf(\*(Aqfield two\*(Aq); \& \& # Get a list of ticket\*(Aqs custom field names: \& my @custom_fields = $ticket\->cf; .Ve .SH "INTERNAL METHODS" .IX Header "INTERNAL METHODS" .IP "\fBrt_type\fR" 2 .IX Item "rt_type" Returns 'ticket'. .SH "SEE ALSO" .IX Header "SEE ALSO" RT::Client::REST, RT::Client::REST::Object, RT::Client::REST::Attachment, RT::Client::REST::SearchResult, RT::Client::REST::Transaction. .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 Abhijit Menon-Sen .IP "\(bu" 4 Dmitri Tikhonov .IP "\(bu" 4 Damien \*(L"dams\*(R" Krotkine .IP "\(bu" 4 Dean Hamstead .IP "\(bu" 4 Miquel Ruiz .IP "\(bu" 4 \&\s-1JLMARTIN\s0 .IP "\(bu" 4 \&\s-1SRVSH\s0 .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2018 by Dmitri Tikhonov. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.