[aded2d1] | 1 | __all__ = [ |
---|
| 2 | 'PrinterUriSupported', |
---|
| 3 | 'UriAuthenticationSupported', |
---|
| 4 | 'UriSecuritySupported', |
---|
| 5 | 'PrinterName', |
---|
| 6 | 'PrinterLocation', |
---|
| 7 | 'PrinterInfo', |
---|
| 8 | 'PrinterMoreInfo', |
---|
| 9 | 'PrinterDriverInstaller', |
---|
| 10 | 'PrinterMakeAndModel', |
---|
| 11 | 'PrinterMoreInfoManufacturer', |
---|
| 12 | 'PrinterState', |
---|
| 13 | 'PrinterStateReasons', |
---|
| 14 | 'PrinterStateMessage', |
---|
| 15 | 'IppVersionsSupported', |
---|
| 16 | 'OperationsSupported', |
---|
| 17 | 'MultipleDocumentJobsSupported', |
---|
| 18 | 'CharsetConfigured', |
---|
| 19 | 'CharsetSupported', |
---|
| 20 | 'NaturalLanguageConfigured', |
---|
| 21 | 'GeneratedNaturalLanguageSupported', |
---|
| 22 | 'DocumentFormatDefault', |
---|
| 23 | 'DocumentFormatSupported', |
---|
| 24 | 'PrinterIsAcceptingJobs', |
---|
| 25 | 'QueuedJobCount', |
---|
| 26 | 'PrinterMessageFromOperator', |
---|
| 27 | 'ColorSupported', |
---|
| 28 | 'ReferenceUriSchemeSupported', |
---|
| 29 | 'PdlOverrideSupported', |
---|
| 30 | 'PrinterUpTime', |
---|
| 31 | 'PrinterCurrentTime', |
---|
| 32 | 'MultipleOperationTimeOut', |
---|
| 33 | 'CompressionSupported', |
---|
| 34 | 'JobKOctetsSupported', |
---|
| 35 | 'JobImpressionsSupported', |
---|
| 36 | 'JobMediaSheetsSupported', |
---|
| 37 | 'PagesPerMinute', |
---|
| 38 | 'PagesPerMinuteColor' |
---|
| 39 | ] |
---|
| 40 | |
---|
| 41 | from ..attribute import Attribute |
---|
| 42 | from ..value import Value |
---|
| 43 | from ..exceptions import ClientErrorAttributes |
---|
| 44 | from ..constants import * |
---|
| 45 | |
---|
| 46 | class PrinterUriSupported(Attribute): |
---|
| 47 | """4.4.1 printer-uri-supported (1setOf uri) |
---|
| 48 | |
---|
| 49 | This REQUIRED Printer attribute contains at least one URI for the |
---|
| 50 | Printer object. It OPTIONALLY contains more than one URI for the |
---|
| 51 | Printer object. |
---|
| 52 | |
---|
| 53 | An administrator determines a Printer object's URI(s) and |
---|
| 54 | configures this attribute to contain those URIs by some means |
---|
| 55 | outside the scope of this IPP/1.1 document. The precise format of |
---|
| 56 | this URI is implementation dependent and depends on the protocol. |
---|
| 57 | See the next two sections for a description of the 'uri-security- |
---|
| 58 | supported' and 'uri-authentication-supported' attributes, both of |
---|
| 59 | which are the REQUIRED companion attributes to this 'printer-uri- |
---|
| 60 | supported' attribute. See section 2.4 on Printer object identity |
---|
| 61 | and section 8.2 on security and URIs for more information. |
---|
| 62 | |
---|
| 63 | """ |
---|
| 64 | |
---|
| 65 | def __init__(self, *vals): |
---|
| 66 | super(type(self), self).__init__( |
---|
| 67 | 'printer-uri-supported', |
---|
| 68 | [Value(CharacterStringTags.URI, val) for val in vals]) |
---|
| 69 | |
---|
| 70 | |
---|
| 71 | class UriAuthenticationSupported(Attribute): |
---|
| 72 | """4.4.2 uri-authentication-supported (1setOf type2 keyword) |
---|
| 73 | |
---|
| 74 | This REQUIRED Printer attribute MUST have the same cardinality |
---|
| 75 | (contain the same number of values) as the 'printer-uri-supported' |
---|
| 76 | attribute. This attribute identifies the Client Authentication |
---|
| 77 | mechanism associated with each URI listed in the 'printer-uri- |
---|
| 78 | supported' attribute. The Printer object uses the specified |
---|
| 79 | mechanism to identify the authenticated user (see section |
---|
| 80 | 8.3). The 'i th' value in 'uri-authentication-supported' |
---|
| 81 | corresponds to the 'i th' value in 'printer-uri-supported' and it |
---|
| 82 | describes the authentication mechanisms used by the Printer when |
---|
| 83 | accessed via that URI. See [RFC2910] for more details on Client |
---|
| 84 | Authentication. |
---|
| 85 | |
---|
| 86 | """ |
---|
| 87 | |
---|
| 88 | def __init__(self, val): |
---|
| 89 | super(type(self), self).__init__( |
---|
| 90 | 'uri-authentication-supported', |
---|
| 91 | [Value(CharacterStringTags.KEYWORD, val)]) |
---|
| 92 | |
---|
| 93 | class UriSecuritySupported(Attribute): |
---|
| 94 | """4.4.3 uri-security-supported (1setOf type2 keyword) |
---|
| 95 | |
---|
| 96 | This REQUIRED Printer attribute MUST have the same cardinality |
---|
| 97 | (contain the same number of values) as the 'printer-uri-supported' |
---|
| 98 | attribute. This attribute identifies the security mechanisms used |
---|
| 99 | for each URI listed in the 'printer-uri-supported' attribute. The |
---|
| 100 | 'i th' value in 'uri-security-supported' corresponds to the 'i th' |
---|
| 101 | value in 'printer-uri-supported' and it describes the security |
---|
| 102 | mechanisms used for accessing the Printer object via that URI. See |
---|
| 103 | [RFC2910] for more details on security mechanisms. |
---|
| 104 | |
---|
| 105 | The following standard keyword values are defined: |
---|
| 106 | 'none': There are no secure communication channel protocols in |
---|
| 107 | use for the given URI. |
---|
| 108 | 'ssl3': SSL3 [SSL] is the secure communications channel |
---|
| 109 | protocol in use for the given URI. |
---|
| 110 | 'tls': TLS [RFC2246] is the secure communications channel |
---|
| 111 | protocol in use for the given URI. |
---|
| 112 | |
---|
| 113 | This attribute is orthogonal to the definition of a Client |
---|
| 114 | Authentication mechanism. Specifically, 'none' does not exclude |
---|
| 115 | Client Authentication. See section 4.4.2. |
---|
| 116 | |
---|
| 117 | """ |
---|
| 118 | |
---|
| 119 | def __init__(self, val): |
---|
| 120 | super(type(self), self).__init__( |
---|
| 121 | 'uri-security-supported', |
---|
| 122 | [Value(CharacterStringTags.KEYWORD, val)]) |
---|
| 123 | |
---|
| 124 | class PrinterName(Attribute): |
---|
| 125 | """4.4.4 printer-name (name(127)) |
---|
| 126 | |
---|
| 127 | This REQUIRED Printer attribute contains the name of the Printer |
---|
| 128 | object. It is a name that is more end-user friendly than a URI. An |
---|
| 129 | administrator determines a printer's name and sets this attribute |
---|
| 130 | to that name. This name may be the last part of the printer's URI |
---|
| 131 | or it may be unrelated. In non-US-English locales, a name may |
---|
| 132 | contain characters that are not allowed in a URI. |
---|
| 133 | |
---|
| 134 | """ |
---|
| 135 | |
---|
| 136 | def __init__(self, val): |
---|
| 137 | super(type(self), self).__init__( |
---|
| 138 | 'printer-name', |
---|
| 139 | [Value(CharacterStringTags.NAME_WITHOUT_LANGUAGE, val)]) |
---|
| 140 | |
---|
| 141 | class PrinterLocation(Attribute): |
---|
| 142 | """4.4.5 printer-location (text(127)) |
---|
| 143 | |
---|
| 144 | """ |
---|
| 145 | |
---|
| 146 | def __init__(self, val): |
---|
| 147 | raise ClientErrorAttributes, "printer-location" |
---|
| 148 | |
---|
| 149 | class PrinterInfo(Attribute): |
---|
| 150 | """4.4.6 printer-info (text(127)) |
---|
| 151 | |
---|
| 152 | """ |
---|
| 153 | |
---|
| 154 | def __init__(self, val): |
---|
| 155 | raise ClientErrorAttributes, "printer-info" |
---|
| 156 | |
---|
| 157 | class PrinterMoreInfo(Attribute): |
---|
| 158 | """4.4.7 printer-more-info (uri) |
---|
| 159 | |
---|
| 160 | """ |
---|
| 161 | |
---|
| 162 | def __init__(self, val): |
---|
| 163 | raise ClientErrorAttributes, "printer-more-info" |
---|
| 164 | |
---|
| 165 | class PrinterDriverInstaller(Attribute): |
---|
| 166 | """4.4.8 printer-driver-installer (uri) |
---|
| 167 | |
---|
| 168 | """ |
---|
| 169 | |
---|
| 170 | def __init__(self, val): |
---|
| 171 | raise ClientErrorAttributes, "printer-driver-installer" |
---|
| 172 | |
---|
| 173 | class PrinterMakeAndModel(Attribute): |
---|
| 174 | """4.4.9 printer-make-and-model (text(127)) |
---|
| 175 | |
---|
| 176 | """ |
---|
| 177 | |
---|
| 178 | def __init__(self, val): |
---|
| 179 | raise ClientErrorAttributes, "printer-make-and-model" |
---|
| 180 | |
---|
| 181 | class PrinterMoreInfoManufacturer(Attribute): |
---|
| 182 | """4.4.10 printer-more-info-manufacturer (uri) |
---|
| 183 | |
---|
| 184 | """ |
---|
| 185 | |
---|
| 186 | def __init__(self, val): |
---|
| 187 | raise ClientErrorAttributes, "printer-more-info-manufacturer" |
---|
| 188 | |
---|
| 189 | class PrinterState(Attribute): |
---|
| 190 | """4.4.11 printer-state (type1 enum) |
---|
| 191 | |
---|
| 192 | This REQUIRED Printer attribute identifies the current state of |
---|
| 193 | the device. The 'printer-state reasons' attribute augments the |
---|
| 194 | 'printer-state' attribute to give more detailed information about |
---|
| 195 | the Printer in the given printer state. |
---|
| 196 | |
---|
| 197 | A Printer object need only update this attribute before responding |
---|
| 198 | to an operation which requests the attribute; the Printer object |
---|
| 199 | NEED NOT update this attribute continually, since asynchronous |
---|
| 200 | event notification is not part of IPP/1.1. A Printer NEED NOT |
---|
| 201 | implement |
---|
| 202 | |
---|
| 203 | """ |
---|
| 204 | |
---|
| 205 | def __init__(self, val): |
---|
| 206 | super(type(self), self).__init__( |
---|
| 207 | 'printer-state', |
---|
| 208 | [Value(IntegerTags.ENUM, val)]) |
---|
| 209 | |
---|
| 210 | class PrinterStateReasons(Attribute): |
---|
| 211 | """4.4.12 printer-state-reasons (1setOf type2 keyword) |
---|
| 212 | |
---|
| 213 | This REQUIRED Printer attribute supplies additional detail about |
---|
| 214 | the device's state. Some of the these value definitions indicate |
---|
| 215 | conformance requirements; the rest are OPTIONAL. |
---|
| 216 | |
---|
| 217 | Each keyword value MAY have a suffix to indicate its level of |
---|
| 218 | severity. The three levels are: report (least severe), warning, |
---|
| 219 | and error (most severe). |
---|
| 220 | |
---|
| 221 | """ |
---|
| 222 | |
---|
| 223 | def __init__(self, val): |
---|
| 224 | super(type(self), self).__init__( |
---|
| 225 | 'printer-state-reasons', |
---|
| 226 | [Value(CharacterStringTags.KEYWORD, val)]) |
---|
| 227 | |
---|
| 228 | class PrinterStateMessage(Attribute): |
---|
| 229 | """4.4.13 printer-state-message (text(MAX)) |
---|
| 230 | |
---|
| 231 | """ |
---|
| 232 | |
---|
| 233 | def __init__(self, val): |
---|
| 234 | raise ClientErrorAttributes, "printer-state-message" |
---|
| 235 | |
---|
| 236 | class IppVersionsSupported(Attribute): |
---|
| 237 | """4.4.14 ipp-versions-supported (1setOf type2 keyword) |
---|
| 238 | |
---|
| 239 | This REQUIRED attribute identifies the IPP protocol version(s) |
---|
| 240 | that this Printer supports, including major and minor versions, |
---|
| 241 | i.e., the version numbers for which this Printer implementation |
---|
| 242 | meets the conformance requirements. For version number validation, |
---|
| 243 | the Printer matches the (two-octet binary) 'version-number' |
---|
| 244 | parameter supplied by the client in each request (see sections |
---|
| 245 | 3.1.1 and 3.1.8) with the (US-ASCII) keyword values of this |
---|
| 246 | attribute. |
---|
| 247 | |
---|
| 248 | The following standard keyword values are defined: |
---|
| 249 | |
---|
| 250 | '1.0': Meets the conformance requirement of IPP version 1.0 as |
---|
| 251 | specified in RFC 2566 [RFC2566] and RFC 2565 [RFC2565] |
---|
| 252 | including any extensions registered according to Section 6 |
---|
| 253 | and any extension defined in this version or any future |
---|
| 254 | version of the IPP 'Model and Semantics' document or the |
---|
| 255 | IPP 'Encoding and Transport' document following the rules, |
---|
| 256 | if any, when the 'version-number' parameter is '1.0'. |
---|
| 257 | |
---|
| 258 | '1.1': Meets the conformance requirement of IPP version 1.1 as |
---|
| 259 | specified in this document and [RFC2910] including any |
---|
| 260 | extensions registered according to Section 6 and any |
---|
| 261 | extension defined in any future versions of the IPP 'Model |
---|
| 262 | and Semantics' document or the IPP Encoding and Transport |
---|
| 263 | document following the rules, if any, when the |
---|
| 264 | 'version-number' parameter is '1.1'. |
---|
| 265 | |
---|
| 266 | """ |
---|
| 267 | |
---|
| 268 | def __init__(self, *vals): |
---|
| 269 | super(type(self), self).__init__( |
---|
| 270 | 'ipp-versions-supported', |
---|
| 271 | [Value(CharacterStringTags.KEYWORD, val) for val in vals]) |
---|
| 272 | |
---|
| 273 | class OperationsSupported(Attribute): |
---|
| 274 | """4.4.15 operations-supported (1setOf type2 enum) |
---|
| 275 | |
---|
| 276 | This REQUIRED Printer attribute specifies the set of supported |
---|
| 277 | operations for this Printer object and contained Job objects. |
---|
| 278 | This attribute is encoded as any other enum attribute syntax |
---|
| 279 | according to [RFC2910] as 32-bits. However, all 32-bit enum values |
---|
| 280 | for this attribute MUST NOT exceed 0x00008FFF, since these same |
---|
| 281 | values are also passed in two octets in the 'operation-id' |
---|
| 282 | parameter (see section 3.1.1) in each Protocol request with the |
---|
| 283 | two high order octets omitted in order to indicate the operation |
---|
| 284 | being performed [RFC2910]. |
---|
| 285 | |
---|
| 286 | """ |
---|
| 287 | |
---|
| 288 | def __init__(self, *vals): |
---|
| 289 | super(type(self), self).__init__( |
---|
| 290 | 'operations-supported', |
---|
| 291 | [Value(IntegerTags.ENUM, val) for val in vals]) |
---|
| 292 | |
---|
| 293 | class MultipleDocumentJobsSupported(Attribute): |
---|
| 294 | """4.4.16 multiple-document-jobs-supported (boolean) |
---|
| 295 | |
---|
| 296 | This Printer attribute indicates whether or not the Printer |
---|
| 297 | supports more than one document per job, i.e., more than one |
---|
| 298 | Send-Document or Send-Data operation with document data. If the |
---|
| 299 | Printer supports the Create-Job and Send-Document operations (see |
---|
| 300 | section 3.2.4 and 3.3.1), it MUST support this attribute. |
---|
| 301 | |
---|
| 302 | """ |
---|
| 303 | |
---|
| 304 | def __init__(self, val): |
---|
| 305 | super(type(self), self).__init__( |
---|
| 306 | 'multiple-document-jobs-supported', |
---|
| 307 | [Value(IntegerTags.BOOLEAN, val)]) |
---|
| 308 | |
---|
| 309 | class CharsetConfigured(Attribute): |
---|
| 310 | """4.4.17 charset-configured (charset) |
---|
| 311 | |
---|
| 312 | This REQUIRED Printer attribute identifies the charset that the |
---|
| 313 | Printer object has been configured to represent 'text' and 'name' |
---|
| 314 | Printer attributes that are set by the operator, system |
---|
| 315 | administrator, or manufacturer, i.e., for 'printer-name' (name), |
---|
| 316 | 'printer-location' (text), 'printer-info' (text), and |
---|
| 317 | 'printer-make- and-model' (text). Therefore, the value of the |
---|
| 318 | Printer object's 'charset-configured' attribute MUST also be among |
---|
| 319 | the values of the Printer object's 'charset-supported' attribute. |
---|
| 320 | |
---|
| 321 | """ |
---|
| 322 | |
---|
| 323 | def __init__(self, val): |
---|
| 324 | super(type(self), self).__init__( |
---|
| 325 | 'charset-configured', |
---|
| 326 | [Value(CharacterStringTags.CHARSET, val)]) |
---|
| 327 | |
---|
| 328 | class CharsetSupported(Attribute): |
---|
| 329 | """4.4.18 charset-supported (1setOf charset) |
---|
| 330 | |
---|
| 331 | This REQUIRED Printer attribute identifies the set of charsets |
---|
| 332 | that the Printer and contained Job objects support in attributes |
---|
| 333 | with attribute syntax 'text' and 'name'. At least the value |
---|
| 334 | 'utf-8' MUST be present, since IPP objects MUST support the UTF-8 |
---|
| 335 | [RFC2279] charset. If a Printer object supports a charset, it |
---|
| 336 | means that for all attributes of syntax 'text' and 'name' the IPP |
---|
| 337 | object MUST (1) accept the charset in requests and return the |
---|
| 338 | charset in responses as needed. |
---|
| 339 | |
---|
| 340 | If more charsets than UTF-8 are supported, the IPP object MUST |
---|
| 341 | perform charset conversion between the charsets as described in |
---|
| 342 | Section 3.1.4.2. |
---|
| 343 | |
---|
| 344 | """ |
---|
| 345 | |
---|
| 346 | def __init__(self, *vals): |
---|
| 347 | super(type(self), self).__init__( |
---|
| 348 | 'charset-supported', |
---|
| 349 | [Value(CharacterStringTags.CHARSET, val) for val in vals]) |
---|
| 350 | |
---|
| 351 | class NaturalLanguageConfigured(Attribute): |
---|
| 352 | """4.4.19 natural-language-configured (naturalLanguage) |
---|
| 353 | |
---|
| 354 | This REQUIRED Printer attribute identifies the natural language |
---|
| 355 | that the Printer object has been configured to represent 'text' |
---|
| 356 | and 'name' Printer attributes that are set by the operator, system |
---|
| 357 | administrator, or manufacturer, i.e., for 'printer-name' (name), |
---|
| 358 | 'printer-location' (text), 'printer-info' (text), and |
---|
| 359 | 'printer-make- and-model' (text). When returning these Printer |
---|
| 360 | attributes, the Printer object MAY return them in the configured |
---|
| 361 | natural language specified by this attribute, instead of the |
---|
| 362 | natural language requested by the client in the |
---|
| 363 | 'attributes-natural-language' operation attribute. See Section |
---|
| 364 | 3.1.4.1 for the specification of the OPTIONAL multiple natural |
---|
| 365 | language support. Therefore, the value of the Printer object's |
---|
| 366 | 'natural-language-configured' attribute MUST also be among the |
---|
| 367 | values of the Printer object's 'generated-natural- |
---|
| 368 | language-supported' attribute. |
---|
| 369 | |
---|
| 370 | """ |
---|
| 371 | |
---|
| 372 | def __init__(self, val): |
---|
| 373 | super(type(self), self).__init__( |
---|
| 374 | 'natural-language-configured', |
---|
| 375 | [Value(CharacterStringTags.NATURAL_LANGUAGE, val)]) |
---|
| 376 | |
---|
| 377 | class GeneratedNaturalLanguageSupported(Attribute): |
---|
| 378 | """4.4.20 generated-natural-language-supported (1setOf naturalLanguage) |
---|
| 379 | |
---|
| 380 | This REQUIRED Printer attribute identifies the natural language(s) |
---|
| 381 | that the Printer object and contained Job objects support in |
---|
| 382 | attributes with attribute syntax 'text' and 'name'. The natural |
---|
| 383 | language(s) supported depends on implementation and/or |
---|
| 384 | configuration. Unlike charsets, IPP objects MUST accept requests |
---|
| 385 | with any natural language or any Natural Language Override whether |
---|
| 386 | the natural language is supported or not. |
---|
| 387 | |
---|
| 388 | If a Printer object supports a natural language, it means that for |
---|
| 389 | any of the attributes for which the Printer or Job object |
---|
| 390 | generates messages, i.e., for the 'job-state-message' and |
---|
| 391 | 'printer-state- message' attributes and Operation Messages (see |
---|
| 392 | Section 3.1.5) in operation responses, the Printer and Job objects |
---|
| 393 | MUST be able to generate messages in any of the Printer's |
---|
| 394 | supported natural languages. See section 3.1.4 for the definition |
---|
| 395 | of 'text' and 'name' attributes in operation requests and |
---|
| 396 | responses. |
---|
| 397 | |
---|
| 398 | Note: A Printer object that supports multiple natural languages, |
---|
| 399 | often has separate catalogs of messages, one for each natural |
---|
| 400 | language supported. |
---|
| 401 | |
---|
| 402 | """ |
---|
| 403 | |
---|
| 404 | def __init__(self, *vals): |
---|
| 405 | super(type(self), self).__init__( |
---|
| 406 | 'generated-natural-language-supported', |
---|
| 407 | [Value(CharacterStringTags.NATURAL_LANGUAGE, val) for val in vals]) |
---|
| 408 | |
---|
| 409 | class DocumentFormatDefault(Attribute): |
---|
| 410 | """4.4.21 document-format-default (mimeMediaType) |
---|
| 411 | |
---|
| 412 | This REQUIRED Printer attribute identifies the document format |
---|
| 413 | that the Printer object has been configured to assume if the |
---|
| 414 | client does not supply a 'document-format' operation attribute in |
---|
| 415 | any of the operation requests that supply document data. The |
---|
| 416 | standard values for this attribute are Internet Media types |
---|
| 417 | (sometimes called MIME types). For further details see the |
---|
| 418 | description of the 'mimeMediaType' attribute syntax in Section |
---|
| 419 | 4.1.9. |
---|
| 420 | |
---|
| 421 | """ |
---|
| 422 | |
---|
| 423 | def __init__(self, val): |
---|
| 424 | super(type(self), self).__init__( |
---|
| 425 | 'document-format-default', |
---|
| 426 | [Value(CharacterStringTags.MIME_MEDIA_TYPE, val)]) |
---|
| 427 | |
---|
| 428 | class DocumentFormatSupported(Attribute): |
---|
| 429 | """4.4.22 document-format-supported (1setOf mimeMediaType) |
---|
| 430 | |
---|
| 431 | This REQUIRED Printer attribute identifies the set of document |
---|
| 432 | formats that the Printer object and contained Job objects can |
---|
| 433 | support. For further details see the description of the |
---|
| 434 | 'mimeMediaType' attribute syntax in Section 4.1.9. |
---|
| 435 | |
---|
| 436 | """ |
---|
| 437 | |
---|
| 438 | def __init__(self, *vals): |
---|
| 439 | super(type(self), self).__init__( |
---|
| 440 | 'document-format-supported', |
---|
| 441 | [Value(CharacterStringTags.MIME_MEDIA_TYPE, val) for val in vals]) |
---|
| 442 | |
---|
| 443 | class PrinterIsAcceptingJobs(Attribute): |
---|
| 444 | """4.4.23 printer-is-accepting-jobs (boolean) |
---|
| 445 | |
---|
| 446 | This REQUIRED Printer attribute indicates whether the printer is |
---|
| 447 | currently able to accept jobs, i.e., is accepting Print-Job, |
---|
| 448 | Print- URI, and Create-Job requests. If the value is 'true', the |
---|
| 449 | printer is accepting jobs. If the value is 'false', the Printer |
---|
| 450 | object is currently rejecting any jobs submitted to it. In this |
---|
| 451 | case, the Printer object returns the |
---|
| 452 | 'server-error-not-accepting-jobs' status code. |
---|
| 453 | |
---|
| 454 | This value is independent of the 'printer-state' and |
---|
| 455 | 'printer-state- reasons' attributes because its value does not |
---|
| 456 | affect the current job; rather it affects future jobs. This |
---|
| 457 | attribute, when 'false', causes the Printer to reject jobs even |
---|
| 458 | when the 'printer-state' is 'idle' or, when 'true', causes the |
---|
| 459 | Printer object to accepts jobs even when the 'printer-state' is |
---|
| 460 | 'stopped'. |
---|
| 461 | |
---|
| 462 | """ |
---|
| 463 | |
---|
| 464 | def __init__(self, val): |
---|
| 465 | super(type(self), self).__init__( |
---|
| 466 | 'printer-is-accepting-jobs', |
---|
| 467 | [Value(IntegerTags.BOOLEAN, val)]) |
---|
| 468 | |
---|
| 469 | class QueuedJobCount(Attribute): |
---|
| 470 | """4.4.24 queued-job-count (integer(0:MAX)) |
---|
| 471 | |
---|
| 472 | This REQUIRED Printer attribute contains a count of the number of |
---|
| 473 | jobs that are either 'pending', 'processing', 'pending-held', or |
---|
| 474 | 'processing-stopped' and is set by the Printer object. |
---|
| 475 | |
---|
| 476 | """ |
---|
| 477 | |
---|
| 478 | def __init__(self, val): |
---|
| 479 | super(type(self), self).__init__( |
---|
| 480 | 'queued-job-count', |
---|
| 481 | [Value(IntegerTags.INTEGER, val)]) |
---|
| 482 | |
---|
| 483 | class PrinterMessageFromOperator(Attribute): |
---|
| 484 | """4.4.25 printer-message-from-operator (text(127)) |
---|
| 485 | |
---|
| 486 | """ |
---|
| 487 | |
---|
| 488 | def __init__(self, val): |
---|
| 489 | raise ClientErrorAttributes, "printer-message-from-operator" |
---|
| 490 | |
---|
| 491 | class ColorSupported(Attribute): |
---|
| 492 | """4.4.26 color-supported (boolean) |
---|
| 493 | |
---|
| 494 | """ |
---|
| 495 | |
---|
| 496 | def __init__(self, val): |
---|
| 497 | raise ClientErrorAttributes, "color-supported" |
---|
| 498 | |
---|
| 499 | class ReferenceUriSchemeSupported(Attribute): |
---|
| 500 | """4.4.27 reference-uri-schemes-supported (1setOf uriScheme) |
---|
| 501 | |
---|
| 502 | """ |
---|
| 503 | |
---|
| 504 | def __init__(self, *vals): |
---|
| 505 | raise ClientErrorAttributes, "reference-uri-scheme-supported" |
---|
| 506 | |
---|
| 507 | class PdlOverrideSupported(Attribute): |
---|
| 508 | """4.4.28 pdl-override-supported (type2 keyword) |
---|
| 509 | |
---|
| 510 | This REQUIRED Printer attribute expresses the ability for a |
---|
| 511 | particular Printer implementation to either attempt to override |
---|
| 512 | document data instructions with IPP attributes or not. This |
---|
| 513 | attribute takes on the following keyword values: |
---|
| 514 | |
---|
| 515 | - 'attempted': This value indicates that the Printer object |
---|
| 516 | attempts to make the IPP attribute values take precedence over |
---|
| 517 | embedded instructions in the document data, however there is no |
---|
| 518 | guarantee. |
---|
| 519 | |
---|
| 520 | - 'not-attempted': This value indicates that the Printer object |
---|
| 521 | makes no attempt to make the IPP attribute values take |
---|
| 522 | precedence over embedded instructions in the document data. |
---|
| 523 | |
---|
| 524 | Section 15 contains a full description of how this attribute |
---|
| 525 | interacts with and affects other IPP attributes, especially the |
---|
| 526 | 'ipp-attribute-fidelity' attribute. |
---|
| 527 | |
---|
| 528 | """ |
---|
| 529 | |
---|
| 530 | def __init__(self, val): |
---|
| 531 | super(type(self), self).__init__( |
---|
| 532 | 'pdl-override-supported', |
---|
| 533 | [Value(CharacterStringTags.KEYWORD, val)]) |
---|
| 534 | |
---|
| 535 | class PrinterUpTime(Attribute): |
---|
| 536 | """4.4.29 printer-up-time (integer(1:MAX)) |
---|
| 537 | |
---|
| 538 | This REQUIRED Printer attribute indicates the amount of time (in |
---|
| 539 | seconds) that this Printer instance has been up and running. The |
---|
| 540 | value is a monotonically increasing value starting from 1 when the |
---|
| 541 | Printer object is started-up (initialized, booted, etc.). This |
---|
| 542 | value is used to populate the Event Time Job Description Job |
---|
| 543 | attributes 'time-at-creation', 'time-at-processing', and |
---|
| 544 | 'time-at-completed' (see section 4.3.14). |
---|
| 545 | |
---|
| 546 | If the Printer object goes down at some value 'n', and comes back |
---|
| 547 | up, the implementation MAY: |
---|
| 548 | |
---|
| 549 | 1. Know how long it has been down, and resume at some value |
---|
| 550 | greater than 'n', or |
---|
| 551 | |
---|
| 552 | 2. Restart from 1. |
---|
| 553 | |
---|
| 554 | In other words, if the device or devices that the Printer object |
---|
| 555 | is representing are restarted or power cycled, the Printer object |
---|
| 556 | MAY continue counting this value or MAY reset this value to 1 |
---|
| 557 | depending on implementation. However, if the Printer object |
---|
| 558 | software ceases running, and restarts without knowing the last |
---|
| 559 | value for 'printer- up-time', the implementation MUST reset this |
---|
| 560 | value to 1. If this value is reset and the Printer has persistent |
---|
| 561 | jobs, the Printer MUST reset the 'time-at-xxx(integer) Event Time |
---|
| 562 | Job Description attributes according to Section 4.3.14. An |
---|
| 563 | implementation MAY use both implementation alternatives, depending |
---|
| 564 | on warm versus cold start, respectively. |
---|
| 565 | |
---|
| 566 | """ |
---|
| 567 | |
---|
| 568 | def __init__(self, val): |
---|
| 569 | super(type(self), self).__init__( |
---|
| 570 | 'printer-up-time', |
---|
| 571 | [Value(IntegerTags.INTEGER, val)]) |
---|
| 572 | |
---|
| 573 | class PrinterCurrentTime(Attribute): |
---|
| 574 | """4.4.30 printer-current-time (dateTime) |
---|
| 575 | |
---|
| 576 | """ |
---|
| 577 | |
---|
| 578 | def __init__(self, val): |
---|
| 579 | raise ClientErrorAttributes, "printer-current-time" |
---|
| 580 | |
---|
| 581 | class MultipleOperationTimeOut(Attribute): |
---|
| 582 | """4.4.31 multiple-operation-time-out (integer(1:MAX)) |
---|
| 583 | |
---|
| 584 | This Printer attributes identifies the minimum time (in seconds) |
---|
| 585 | that the Printer object waits for additional Send-Document or |
---|
| 586 | Send-URI operations to follow a still-open Job object before |
---|
| 587 | taking any recovery actions, such as the ones indicated in section |
---|
| 588 | 3.3.1. If the Printer object supports the Create-Job and |
---|
| 589 | Send-Document operations (see section 3.2.4 and 3.3.1), it MUST |
---|
| 590 | support this attribute. |
---|
| 591 | |
---|
| 592 | It is RECOMMENDED that vendors supply a value for this attribute |
---|
| 593 | that is between 60 and 240 seconds. An implementation MAY allow a |
---|
| 594 | system administrator to set this attribute (by means outside this |
---|
| 595 | IPP/1.1 document). If so, the system administrator MAY be able to |
---|
| 596 | set values outside this range. |
---|
| 597 | |
---|
| 598 | """ |
---|
| 599 | |
---|
| 600 | def __init__(self, val): |
---|
| 601 | super(type(self), self).__init__( |
---|
| 602 | 'multiple-operation-time-out', |
---|
| 603 | [Value(IntegerTags.INTEGER, val)]) |
---|
| 604 | |
---|
| 605 | class CompressionSupported(Attribute): |
---|
| 606 | """4.4.32 compression-supported (1setOf type3 keyword) |
---|
| 607 | |
---|
| 608 | This REQUIRED Printer attribute identifies the set of supported |
---|
| 609 | compression algorithms for document data. Compression only applies |
---|
| 610 | to the document data; compression does not apply to the encoding |
---|
| 611 | of the IPP operation itself. The supported values are used to |
---|
| 612 | validate the client supplied 'compression' operation attributes in |
---|
| 613 | Print-Job, Send-Document, and Send-URI requests. |
---|
| 614 | |
---|
| 615 | Standard keyword values are : |
---|
| 616 | 'none': no compression is used. |
---|
| 617 | 'deflate': ZIP public domain inflate/deflate) compression |
---|
| 618 | technology in RFC 1951 [RFC1951] |
---|
| 619 | 'gzip' GNU zip compression technology described in RFC 1952 |
---|
| 620 | [RFC1952]. |
---|
| 621 | 'compress': UNIX compression technology in RFC 1977 [RFC1977] |
---|
| 622 | |
---|
| 623 | """ |
---|
| 624 | |
---|
| 625 | def __init__(self, *vals): |
---|
| 626 | super(type(self), self).__init__( |
---|
| 627 | 'compression-supported', |
---|
| 628 | [Value(CharacterStringTags.KEYWORD, val) for val in vals]) |
---|
| 629 | |
---|
| 630 | class JobKOctetsSupported(Attribute): |
---|
| 631 | """4.4.33 job-k-octets-supported (rangeOfInteger(0:MAX)) |
---|
| 632 | |
---|
| 633 | """ |
---|
| 634 | |
---|
| 635 | def __init__(self, val): |
---|
| 636 | raise ClientErrorAttributes, "job-k-octets-supported" |
---|
| 637 | |
---|
| 638 | class JobImpressionsSupported(Attribute): |
---|
| 639 | """4.4.34 job-impressions-supported (rangeOfInteger(0:MAX)) |
---|
| 640 | |
---|
| 641 | """ |
---|
| 642 | |
---|
| 643 | def __init__(self, val): |
---|
| 644 | raise ClientErrorAttributes, "job-impressions-supported" |
---|
| 645 | |
---|
| 646 | class JobMediaSheetsSupported(Attribute): |
---|
| 647 | """4.4.35 job-media-sheets-supported (rangeOfInteger(0:MAX)) |
---|
| 648 | |
---|
| 649 | """ |
---|
| 650 | |
---|
| 651 | def __init__(self, val): |
---|
| 652 | raise ClientErrorAttributes, "job-media-sheets-supported" |
---|
| 653 | |
---|
| 654 | class PagesPerMinute(Attribute): |
---|
| 655 | """4.4.36 pages-per-minute (integer(0:MAX)) |
---|
| 656 | |
---|
| 657 | """ |
---|
| 658 | |
---|
| 659 | def __init__(self, val): |
---|
| 660 | raise ClientErrorAttributes, "pages-per-minute" |
---|
| 661 | |
---|
| 662 | class PagesPerMinuteColor(Attribute): |
---|
| 663 | """4.4.37 pages-per-minute-color (integer(0:MAX)) |
---|
| 664 | |
---|
| 665 | """ |
---|
| 666 | |
---|
| 667 | def __init__(self, val): |
---|
| 668 | raise ClientErrorAttributes, "pages-per-minute-color" |
---|
| 669 | |
---|