go-ipp/constants.go
2020-03-06 10:25:31 +01:00

388 lines
18 KiB
Go

package ipp
type Status int8
const (
StatusCupsInvalid Status = -1
StatusOk = 0x0000
StatusOkIgnoredOrSubstituted = 0x0001
StatusOkConflicting = 0x0002
statusOkIgnoredSubscriptions = 0x0003
statusOkIgnoredNotifications = 0x0004
statusOkTooManyEvents = 0x0005
statusOkButCancelSubscription = 0x0006
statusOkEventsComplete = 0x0007
statusRedirectionOtherSite = 0x0200
statusCupsSeeOther = 0x0280
statusErrorBadRequest = 0x0400
StatusErrorForbidden = 0x0401
StatusErrorNotAuthenticated = 0x0402
StatusErrorNotAuthorized = 0x0403
StatusErrorNotPossible = 0x0404
StatusErrorTimeout = 0x0405
StatusErrorNotFound = 0x0406
StatusErrorGone = 0x0407
StatusErrorRequestEntity = 0x0408
StatusErrorRequestValue = 0x0409
StatusErrorDocumentFormatNotSupported = 0x040a
StatusErrorAttributesOrValues = 0x040b
StatusErrorUriScheme = 0x040c
StatusErrorCharset = 0x040d
StatusErrorConflicting = 0x040e
StatusErrorCompressionError = 0x040f
StatusErrorDocumentFormatError = 0x0410
StatusErrorDocumentAccess = 0x0411
StatusErrorAttributesNotSettable = 0x0412
StatusErrorIgnoredAllSubscriptions = 0x0413
StatusErrorTooManySubscriptions = 0x0414
StatusErrorIgnoredAllNotifications = 0x0415
StatusErrorPrintSupportFileNotFound = 0x0416
StatusErrorDocumentPassword = 0x0417
StatusErrorDocumentPermission = 0x0418
StatusErrorDocumentSecurity = 0x0419
StatusErrorDocumentUnprintable = 0x041a
StatusErrorAccountInfoNeeded = 0x041b
StatusErrorAccountClosed = 0x041c
StatusErrorAccountLimitReached = 0x041d
StatusErrorAccountAuthorizationFailed = 0x041e
StatusErrorNotFetchable = 0x041f
StatusErrorCupsAccountInfoNeeded = 0x049C
StatusErrorCupsAccountClosed = 0x049d
StatusErrorCupsAccountLimitReached = 0x049e
StatusErrorCupsAccountAuthorizationFailed = 0x049f
StatusErrorInternal = 0x0500
StatusErrorOperationNotSupported = 0x0501
StatusErrorServiceUnavailable = 0x0502
StatusErrorVersionNotSupported = 0x0503
StatusErrorDevice = 0x0504
StatusErrorTemporary = 0x0505
StatusErrorNotAcceptingJobs = 0x0506
StatusErrorBusy = 0x0507
StatusErrorJobCanceled = 0x0508
StatusErrorMultipleJobsNotSupported = 0x0509
StatusErrorPrinterIsDeactivated = 0x050a
StatusErrorTooManyJobs = 0x050b
StatusErrorTooManyDocuments = 0x050c
StatusErrorCupsAuthenticationCanceled = 0x1000
StatusErrorCupsPki = 0x1001
StatusErrorCupsUpgradeRequired = 0x1002
)
type Operation int16
const (
OperationCupsInvalid Operation = -0x0001
OperationCupsNone = 0x0000
OperationPrintJob = 0x0002
OperationPrintUri = 0x0003
OperationValidateJob = 0x0004
OperationCreateJob = 0x0005
OperationSendDocument = 0x0006
OperationSendUri = 0x0007
OperationCancelJob = 0x0008
OperationGetJobAttributes = 0x0009
OperationGetJobs = 0x000a
OperationGetPrinterAttributes = 0x000b
OperationHoldJob = 0x000c
OperationReleaseJob = 0x000d
OperationRestartJob = 0x000e
OperationPausePrinter = 0x0010
OperationResumePrinter = 0x0011
OperationPurgeJobs = 0x0012
OperationSetPrinterAttributes = 0x0013
OperationSetJobAttributes = 0x0014
OperationGetPrinterSupportedValues = 0x0015
OperationCreatePrinterSubscriptions = 0x0016
OperationCreateJobSubscriptions = 0x0017
OperationGetSubscriptionAttributes = 0x0018
OperationGetSubscriptions = 0x0019
OperationRenewSubscription = 0x001a
OperationCancelSubscription = 0x001b
OperationGetNotifications = 0x001c
OperationSendNotifications = 0x001d
OperationGetResourceAttributes = 0x001e
OperationGetResourceData = 0x001f
OperationGetResources = 0x0020
OperationGetPrintSupportFiles = 0x0021
OperationEnablePrinter = 0x0022
OperationDisablePrinter = 0x0023
OperationPausePrinterAfterCurrentJob = 0x0024
OperationHoldNewJobs = 0x0025
OperationReleaseHeldNewJobs = 0x0026
OperationDeactivatePrinter = 0x0027
OperationActivatePrinter = 0x0028
OperationRestartPrinter = 0x0029
OperationShutdownPrinter = 0x002a
OperationStartupPrinter = 0x002b
OperationReprocessJob = 0x002c
OperationCancelCurrentJob = 0x002d
OperationSuspendCurrentJob = 0x002e
OperationResumeJob = 0x002f
OperationOperationPromoteJob = 0x0030
OperationScheduleJobAfter = 0x0031
OperationCancelDocument = 0x0033
OperationGetDocumentAttributes = 0x0034
OperationGetDocuments = 0x0035
OperationDeleteDocument = 0x0036
OperationSetDocumentAttributes = 0x0037
OperationCancelJobs = 0x0038
OperationCancelMyJobs = 0x0039
OperationResubmitJob = 0x003a
OperationCloseJob = 0x003b
OperationIdentifyPrinter = 0x003c
OperationValidateDocument = 0x003d
OperationAddDocumentImages = 0x003e
OperationAcknowledgeDocument = 0x003f
OperationAcknowledgeIdentifyPrinter = 0x0040
OperationAcknowledgeJob = 0x0041
OperationFetchDocument = 0x0042
OperationFetchJob = 0x0043
OperationGetOutputDeviceAttributes = 0x0044
OperationUpdateActiveJobs = 0x0045
OperationDeregisterOutputDevice = 0x0046
OperationUpdateDocumentStatus = 0x0047
OperationUpdateJobStatus = 0x0048
OperationUpdateOutputDeviceAttributes = 0x0049
OperationGetNextDocumentData = 0x004a
OperationAllocatePrinterResources = 0x004b
OperationCreatePrinter = 0x004c
OperationDeallocatePrinterResources = 0x004d
OperationDeletePrinter = 0x004e
OperationGetPrinters = 0x004f
OperationShutdownOnePrinter = 0x0050
OperationStartupOnePrinter = 0x0051
OperationCancelResource = 0x0052
OperationCreateResource = 0x0053
OperationInstallResource = 0x0054
OperationSendResourceData = 0x0055
OperationSetResourceAttributes = 0x0056
OperationCreateResourceSubscriptions = 0x0057
OperationCreateSystemSubscriptions = 0x0058
OperationDisableAllPrinters = 0x0059
OperationEnableAllPrinters = 0x005a
OperationGetSystemAttributes = 0x005b
OperationGetSystemSupportedValues = 0x005c
OperationPauseAllPrinters = 0x005d
OperationPauseAllPrintersAfterCurrentJob = 0x005e
OperationRegisterOutputDevice = 0x005f
OperationRestartSystem = 0x0060
OperationResumeAllPrinters = 0x0061
OperationSetSystemAttributes = 0x0062
OperationShutdownAllPrinter = 0x0063
OperationStartupAllPrinters = 0x0064
OperationPrivate = 0x4000
OperationCupsGetDefault = 0x4001
OperationCupsGetPrinters = 0x4002
OperationCupsAddModifyPrinter = 0x4003
OperationCupsDeletePrinter = 0x4004
OperationCupsGetClasses = 0x4005
OperationCupsAddModifyClass = 0x4006
OperationCupsDeleteClass = 0x4007
OperationCupsAcceptJobs = 0x4008
OperationCupsRejectJobs = 0x4009
OperationCupsSetDefault = 0x400a
OperationCupsGetDevices = 0x400b
OperationCupsGetPpds = 0x400c
OperationCupsMoveJob = 0x400d
OperationCupsAuthenticateJob = 0x400e
OperationCupsGetPpd = 0x400f
OperationCupsGetDocument = 0x4027
OperationCupsCreateLocalPrinter = 0x4028
)
type Tag int8
const (
TagCupsInvalid Tag = -1
TagZero = 0x00
TagOperation = 0x01
TagJob = 0x02
TagEnd = 0x03
TagPrinter = 0x04
TagUnsupportedGroup = 0x05
TagSubscription = 0x06
TagEventNotification = 0x07
TagResource = 0x08
TagDocument = 0x09
TagSystem = 0x0a
TagUnsupportedValue = 0x10
TagDefault = 0x11
TagUnknown = 0x12
TagNoValue = 0x013
TagNotSettable = 0x15
TagDeleteAttr = 0x16
TagAdminDefine = 0x17
TagInteger = 0x21
TagBoolean = 0x22
TagEnum = 0x23
TagString = 0x30
TagDate = 0x31
TagResolution = 0x32
TagRange = 0x33
TagBeginCollection = 0x34
TagTextLang = 0x35
TagNameLang = 0x36
TagEndCollection = 0x37
TagText = 0x41
TagName = 0x42
TagReservedString = 0x43
TagKeyword = 0x44
TagUri = 0x45
TagUriScheme = 0x46
TagCharset = 0x47
TagLanguage = 0x48
TagMimeType = 0x49
TagMemberName = 0x4a
TagExtension = 0x7f
TagCupsMask = 0x7fffffff
TagCupsConst = -0x7fffffff - 1
)
type JobState uint8
const (
JobStatePending JobState = 0x03
JobStateHeld = 0x04
JobStateProcessing = 0x05
JobStateStopped = 0x06
JobStateCanceled = 0x07
JobStateAborted = 0x08
JobStateCompleted = 0x09
)
type DocumentState uint8
const (
DocumentStatePending DocumentState = 0x03
DocumentStateProcessing = 0x05
DocumentStateCanceled = 0x07
DocumentStateAborted = 0x08
DocumentStateCompleted = 0x08
)
type PrinterState uint8
const (
PrinterStateIdle PrinterState = 0x0003
PrinterStateProcessing = 0x0004
PrinterStateStopped = 0x0005
)
type JobStateFilter string
const (
JobStateFilterNotCompleted = "not-completed"
JobStateFilterCompleted = "completed"
JobStateFilterAll = "all"
)
type ErrorPolicy string
const (
ErrorPolicyRetryJob ErrorPolicy = "retry-job"
ErrorPolicyAbortJob = "abort-job"
ErrorPolicyRetryCurrentJob = "retry-current-job"
ErrorPolicyStopPrinter = "stop-printer"
)
const (
CharsetLanguage = "en-US"
Charset = "utf-8"
ProtocolVersionMajor = uint8(2)
ProtocolVersionMinor = uint8(0)
DefaultJobPriority = 50
MimeTypePostscript = "application/postscript"
MimeTypeOctetStream = "application/octet-stream"
ContentTypeIPP = "application/ipp"
)
const (
OperationAttributeCopies string = "copies"
OperationAttributeDocumentFormat = "document-format"
OperationAttributeDocumentName = "document-name"
OperationAttributeJobID = "job-id"
OperationAttributeJobName = "job-name"
OperationAttributeJobPriority = "job-priority"
OperationAttributeJobURI = "job-uri"
OperationAttributeLastDocument = "last-document"
OperationAttributeMyJobs = "my-jobs"
OperationAttributePPDName = "ppd-name"
OperationAttributePrinterIsShared = "printer-is-shared"
OperationAttributePrinterURI = "printer-uri"
OperationAttributePurgeJobs = "purge-jobs"
OperationAttributeRequestedAttributes = "requested-attributes"
OperationAttributeRequestingUserName = "requesting-user-name"
OperationAttributeWhichJobs = "which-jobs"
OperationAttributeFirstJobID = "first-job-id"
OperationAttributeLimit = "limit"
)
const (
PrinterAttributeDeviceURI string = "device-uri"
PrinterAttributeHoldJobUntil = "job-hold-until"
PrinterAttributePrinterErrorPolicy = "printer-error-policy"
PrinterAttributePrinterInfo = "printer-info"
PrinterAttributePrinterLocation = "printer-location"
PrinterAttributePrinterName = "printer-name"
PrinterAttributePrinterStateReason = "printer-state-reason"
PrinterAttributeJobPrinterURI = "job-printer-uri"
PrinterAttributeMemberURIs = "member-uris"
)
var (
DefaultClassAttributes = []string{"printer-name", "member-names"}
DefaultPrinterAttributes = []string{"printer-name", "printer-type", "printer-location", "printer-info",
"printer-make-and-model", "printer-state", "printer-state-message", "printer-state-reason",
"printer-uri-supported", "device-uri", "printer-is-shared"}
DefaultJobAttributes = []string{"job-id", "job-name", "printer-uri", "job-state", "job-state-reasons",
"job-hold-until", "job-media-progress", "job-k-octets", "number-of-documents", "copies",
"job-originating-user-name"}
AttributeTagMapping = map[string]Tag{
"attributes-charset": TagCharset,
"attributes-natural-language": TagLanguage,
"copies": TagInteger,
"device-uri": TagUri,
"document-format": TagMimeType,
"document-name": TagName,
"document-number": TagInteger,
"document-state": TagEnum,
"finishings": TagEnum,
"hold-job-until": TagKeyword,
"job-hold-until": TagKeyword,
"job-id": TagInteger,
"job-name": TagName,
"job-printer-uri": TagUri,
"job-priority": TagInteger,
"job-sheets": TagName,
"job-state": TagEnum,
"job-state-reason": TagKeyword,
"job-uri": TagUri,
"last-document": TagBoolean,
"media": TagKeyword,
"member-uris": TagUri,
"my-jobs": TagBoolean,
"number-up": TagInteger,
"orientation-requested": TagEnum,
"ppd-name": TagName,
"print-quality": TagEnum,
"printer-error-policy": TagName,
"printer-info": TagText,
"printer-is-accepting-jobs": TagBoolean,
"printer-is-shared": TagBoolean,
"printer-location": TagText,
"printer-resolution": TagResolution,
"printer-state": TagEnum,
"printer-state-reason": TagKeyword,
"printer-uri": TagUri,
"purge-jobs": TagBoolean,
"requested-attributes": TagKeyword,
"requesting-user-name": TagName,
"which-jobs": TagKeyword,
"first-job-id": TagInteger,
}
)