IPP Printer Object

The Printer object is the main object in the IPP model. The Printer
object provides the server-side support for IPP. The Printer object contains
the functions that are normally associated with physical output devices. These
functions include spooling, scheduling, transformation, and managing of multiple
devices that are associated with the print server. Printer objects are uniquely
identified by a printer-uri. They can be registered as
entries in a directory for the purpose of searching and locating static information
about the Printer object, such as name, context, and printer capabilities.
Dynamic information, for example, the number of jobs that are queued to the
printer, errors and warnings, are associated with the Printer object itself.

Note –

A Printer object can be used to represent a real or virtual device,
as long as the semantics are consistent with those of a Printer object.

IPP clients implement the protocol on the client-side, providing you,
or a program running on your behalf, the ability to query Printer objects
for the purpose of submitting and managing print jobs. The IPP server is the
part of the Printer object that implements the application semantics of the
print service. Printer objects can be embedded in an output device or they
can be implemented on network host that communicates with an output device.

When a job is submitted to a Printer object, the Printer object validates
the attributes in the request and then creates the Job object. When you query
a job status or monitor its progress, you are interacting with the Job object.
If you cancel a print job, you are using the Job objects's Cancel-job operation.
For more information about Job object operations, see IPP Operation Keywords.