// Copyright (c) 2005 DMTF.  All rights reserved.
// <change cr="CIMCoreCR00752.000" type ="change">Update of
// descriptions based on Tech Edit review.</
// <change cr="ArchCR00066.004" type="add">Add UmlPackagePath
// qualifier values to CIM Schema.</change>
// <change cr="CIMCoreCR00857" type ="change'>Update the
// description of the class and the properties descriptions
// and MappingStrings.</
// <change cr="ArchCR00089.003" type="add">Add PUnit qualifier values
// to Units qualifier values.</change>
// ==================================================================
//  CIM_PrintQueue
// ==================================================================
   [Version ( "2.14.0" ), 
    UMLPackagePath ( "CIM::Device::Printing" ), 
    Description ( 
       "Capabilities and management of a Printer Queue. A PrintQueue "
       "holds PrintJobs that are placed on the Queue by a Print "
       "Service. Jobs can move from Queue to Queue. The ABNF for CIM "
       "references to PWG Standards and MIBs is in the directory "
       "\'ftp://ftp.pwg.org/pub/pwg/general/process\' in the file "
       "\'pwg-cim-references-format-20060309.txt\'. An example for a "
       "MappingStrings reference to a PWG Standard is "
       "\'PWG5101-1.PWG|Section 4 Media Color Names\'. An example for "
       "a MappingStrings reference to a PWG MIB is "
       "\'MIB.PWG|PWG-IMAGING-COUNTER-MIB.icMonitorCompletedJobs\'." )]
class CIM_PrintQueue : CIM_JobDestination {

      [Deprecated { "CIM_EnabledLogicalElement.EnabledState" }, 
       Description ( 
          "Note: Both this property and QueueAccepting are "
          "deprecated in lieu of EnabledState. \n"
          "Deprecated description: Indicates that Jobs on the Queue "
          "will be passed to a Printer. When false, a Job will "
          "remain on the Queue and will not be passed to a Printer "
          "for output. This property, coupled with the information "
          "in QueueAccepting, aligns with various values of the "
          "inherited EnabledState property: \n"
          "- When both QueueEnabled and QueueAccepting are true, "
          "then EnabledState is set to 2 (\"Enabled\") \n"
          "- When both QueueEnabled and QueueAccepting are false, "
          "then EnabledState is set to 3 (\"Disabled\") \n"
          "- When QueueEnabled is true and QueueAccepting is false "
          "(for instance, when the Queue outputs jobs to the "
          "printer, but does not accept new jobs), then "
          "EnabledState is set to 6 (\"Enabled but Offline\") \n"
          "- When QueueEnabled is false and QueueAccepting is true "
          "(for instance, when the Queue accepts print jobs but "
          "does not send them to a printer), then EnabledState is "
          "set to 8 (\"Deferred\")." )]
   boolean QueueEnabled;

      [Deprecated { "CIM_EnabledLogicalElement.EnabledState" }, 
       Description ( 
          "Note: Both this property and QueueEnabled are deprecated "
          "in lieu of EnabledState. \n"
          "Deprecated description: When false, no PrintService can "
          "place PrintJobs on the PrintQueue. The ability of an "
          "individual PrintService to place a Job on the Queue can "
          "be specified using the QueueAcceptingFromService "
          "property in the QueueForPrint Service association. This "
          "property, coupled with the information in QueueEnabled, "
          "aligns with various values of the inherited EnabledState "
          "property: \n"
          "- When both QueueEnabled and QueueAccepting are true, "
          "then EnabledState is set to 2 (\"Enabled\") \n"
          "- When both QueueEnabled and QueueAccepting are false, "
          "then EnabledState is set to 3 (\"Disabled\") \n"
          "- When QueueEnabled is true and QueueAccepting is false "
          "(for instance, when the Queue outputs jobs to the "
          "printer, but does not accept new jobs), then "
          "EnabledState is set to 6 (\"Enabled but Offline\") \n"
          "- When QueueEnabled is false and QueueAccepting is true "
          "(for instance, when the Queue accepts print jobs but "
          "does not send them to a printer), then EnabledState is "
          "set to 8 (\"Deferred\")." )]
   boolean QueueAccepting;

      [Description ( "The current number of Jobs on the Queue." ), 
       Gauge, MappingStrings { 
          "MIB.IETF|Job-Monitoring-MIB.jmGeneralNumberOfActiveJobs", 
          "RFC2911.IETF|Printer.queued-job-count" }]
   uint32 NumberOnQueue;

      [Description ( 
          "Gives Queue-specific status information, beyond the "
          "ManagedSystemElement.Status property. This method can be "
          "used to provide further qualification as to the status "
          "of the Queue or to indicate a secondary condition (for "
          "example, spool area is full)." ), 
       ValueMap { "0", "1", "2", "3" }, 
       Values { "Other", "Unknown", "No Additional Status", 
          "QueueSpoolAreaFull" }, 
       MappingStrings { "RFC2911.IETF|Printer.printer-state-reasons" }]
   uint16 QueueStatus;

      [Description ( 
          "Provides a textual explanation for the status of the "
          "Queue. The settings of both QueueStatus and the Status "
          "property that are inherited from ManagedSystemElement "
          "can be described by QueueStatusInfo. For example, if "
          "\"Stopping\" is the value that is assigned to Status, "
          "then this property might contain an explanation as to "
          "why the Queue is being stopped." ), 
       MappingStrings { "RFC2911.IETF|Printer.printer-state-message" }]
   string QueueStatusInfo;

      [Description ( 
          "Specifies the largest possible Job (in terms of a single "
          "byte stream) that can be submitted to this Queue. A "
          "value of 0 indicates that no limit has been set. Units "
          "are Kbytes." ), 
       Units ( "KiloBytes" ), 
       MappingStrings { 
          "RFC2911.IETF|Section 4.4.33 job-k-octets-supported" }, 
       ModelCorrespondence { "CIM_PrintJob.JobSize" }, 
       PUnit ( "byte * 10^3" )]
   uint32 MaxJobSize;

      [Description ( 
          "Specifies the priority that will be assigned to a new "
          "Job that is submitted to this Queue, if the Job does not "
          "explicitly specify a priority. The range of valid "
          "priorities and the interpretation of priorities can be "
          "determined from the JobPriorityHigh and JobPriorityLow "
          "properties." ), 
       MappingStrings { "RFC2911.IETF|Printer.job-priority-default" }, 
       ModelCorrespondence { "CIM_PrintQueue.JobPriorityHigh", 
          "CIM_PrintQueue.JobPriorityLow" }]
   uint32 DefaultJobPriority;

      [Description ( 
          "Specifies the numeric value that is used to represent "
          "the highest priority Jobs that are submitted to this "
          "Queue. The range of numeric values for priority can be "
          "inverted, for example, a high priority job is "
          "represented by a low integer value. This value is "
          "indicated by JobPriorityLow being greater than "
          "JobPriorityHigh. If both values (PriorityLow and "
          "PriorityHigh) are assigned to 0, then the Queue does not "
          "support Job priorities. The values and usage of the "
          "property SHOULD conform to the semantics of the "
          "\'job-priority-supported\' attribute of the Printer "
          "object defined in IPP/1.1 [RFC2911]." ), 
       MappingStrings { "RFC2911.IETF|Printer.job-priority-supported" }, 
       ModelCorrespondence { "CIM_PrintQueue.JobPriorityLow", 
          "CIM_Job.Priority" }]
   uint32 JobPriorityHigh;

      [Description ( 
          "Specifies the numeric value that is used to represent "
          "the lowest priority Jobs that are submitted to this "
          "Queue. The range of numeric values for priority can be "
          "inverted, for example, a low priority job is represented "
          "by a high integer value. This value is indicated by "
          "JobPriorityLow being greater than JobPriorityHigh. If "
          "both values (PriorityLow and PriorityHigh) are assigned "
          "to 0, then the Queue does not support Job priorities. "
          "The values and usage of the property SHOULD conform to "
          "the semantics of the \'job-priority-supported\' "
          "attribute of the Printer object defined in IPP/1.1 "
          "[RFC2911]." ), 
       MappingStrings { "RFC2911.IETF|Printer.job-priority-supported" }, 
       ModelCorrespondence { "CIM_PrintQueue.JobPriorityHigh", 
          "CIM_Job.Priority" }]
   uint32 JobPriorityLow;

      [Description ( 
          "Specifies the job sheets that are supported by this "
          "Queue. Typically the job sheets that are provided by a "
          "Queue will be the union or aggregation of those provided "
          "by all the Printers that it supports. However, a system "
          "administrator can choose to restrict access to some job "
          "sheets on a particular Queue. A Queue can also support "
          "additional job sheets through the use of a filter that "
          "adds a banner or some other page when a Job is taken "
          "from the Queue." ), 
       MappingStrings { 
          "MIB.IETF|Printer-MIB.prtAuxiliarySheetStartupPage", 
          "MIB.IETF|Printer-MIB.prtAuxiliarySheetBannerPage", 
          "RFC2911.IETF|Printer.job-sheets-supported" }, 
       ModelCorrespondence { "CIM_PrintJob.RequiredJobSheets" }]
   string AvailableJobSheets[];


};
