1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271
|
/* Go IPP - IPP core protocol implementation in pure Go
*
* Copyright (C) 2020 and up by Alexander Pevzner (pzz@apevzner.com)
* See LICENSE for license terms and conditions
*
* IPP Operation Codes
*/
package goipp
import (
"fmt"
)
// Op represents an IPP Operation Code
type Op Code
// Op codes
const (
OpPrintJob Op = 0x0002 // Print-Job: Print a single file
OpPrintURI Op = 0x0003 // Print-URI: Print a single URL
OpValidateJob Op = 0x0004 // Validate-Job: Validate job values prior to submission
OpCreateJob Op = 0x0005 // Create-Job: Create an empty print job
OpSendDocument Op = 0x0006 // Send-Document: Add a file to a job
OpSendURI Op = 0x0007 // Send-URI: Add a URL to a job
OpCancelJob Op = 0x0008 // Cancel-Job: Cancel a job
OpGetJobAttributes Op = 0x0009 // Get-Job-Attribute: Get information about a job
OpGetJobs Op = 0x000a // Get-Jobs: Get a list of jobs
OpGetPrinterAttributes Op = 0x000b // Get-Printer-Attributes: Get information about a printer
OpHoldJob Op = 0x000c // Hold-Job: Hold a job for printing
OpReleaseJob Op = 0x000d // Release-Job: Release a job for printing
OpRestartJob Op = 0x000e // Restart-Job: Reprint a job
OpPausePrinter Op = 0x0010 // Pause-Printer: Stop a printer
OpResumePrinter Op = 0x0011 // Resume-Printer: Start a printer
OpPurgeJobs Op = 0x0012 // Purge-Jobs: Delete all jobs
OpSetPrinterAttributes Op = 0x0013 // Set-Printer-Attributes: Set printer values
OpSetJobAttributes Op = 0x0014 // Set-Job-Attributes: Set job values
OpGetPrinterSupportedValues Op = 0x0015 // Get-Printer-Supported-Values: Get supported values
OpCreatePrinterSubscriptions Op = 0x0016 // Create-Printer-Subscriptions: Create one or more printer subscriptions
OpCreateJobSubscriptions Op = 0x0017 // Create-Job-Subscriptions: Create one of more job subscriptions
OpGetSubscriptionAttributes Op = 0x0018 // Get-Subscription-Attributes: Get subscription information
OpGetSubscriptions Op = 0x0019 // Get-Subscriptions: Get list of subscriptions
OpRenewSubscription Op = 0x001a // Renew-Subscription: Renew a printer subscription
OpCancelSubscription Op = 0x001b // Cancel-Subscription: Cancel a subscription
OpGetNotifications Op = 0x001c // Get-Notifications: Get notification events
OpSendNotifications Op = 0x001d // Send-Notifications: Send notification events
OpGetResourceAttributes Op = 0x001e // Get-Resource-Attributes: Get resource information
OpGetResourceData Op = 0x001f // Get-Resource-Data: Get resource data
OpGetResources Op = 0x0020 // Get-Resources: Get list of resources
OpGetPrintSupportFiles Op = 0x0021 // Get-Printer-Support-Files: Get printer support files
OpEnablePrinter Op = 0x0022 // Enable-Printer: Accept new jobs for a printer
OpDisablePrinter Op = 0x0023 // Disable-Printer: Reject new jobs for a printer
OpPausePrinterAfterCurrentJob Op = 0x0024 // Pause-Printer-After-Current-Job: Stop printer after the current job
OpHoldNewJobs Op = 0x0025 // Hold-New-Jobs: Hold new jobs
OpReleaseHeldNewJobs Op = 0x0026 // Release-Held-New-Jobs: Release new jobs that were previously held
OpDeactivatePrinter Op = 0x0027 // Deactivate-Printer: Stop a printer and do not accept jobs
OpActivatePrinter Op = 0x0028 // Activate-Printer: Start a printer and accept jobs
OpRestartPrinter Op = 0x0029 // Restart-Printer: Restart a printer
OpShutdownPrinter Op = 0x002a // Shutdown-Printer: Turn a printer off
OpStartupPrinter Op = 0x002b // Startup-Printer: Turn a printer on
OpReprocessJob Op = 0x002c // Reprocess-Job: Reprint a job
OpCancelCurrentJob Op = 0x002d // Cancel-Current-Job: Cancel the current job
OpSuspendCurrentJob Op = 0x002e // Suspend-Current-Job: Suspend the current job
OpResumeJob Op = 0x002f // Resume-Job: Resume the current job
OpPromoteJob Op = 0x0030 // Promote-Job: Promote a job to print sooner
OpScheduleJobAfter Op = 0x0031 // Schedule-Job-After: Schedule a job to print after another
OpCancelDocument Op = 0x0033 // Cancel-Document: Cancel a document
OpGetDocumentAttributes Op = 0x0034 // Get-Document-Attributes: Get document information
OpGetDocuments Op = 0x0035 // Get-Documents: Get a list of documents in a job
OpDeleteDocument Op = 0x0036 // Delete-Document: Delete a document
OpSetDocumentAttributes Op = 0x0037 // Set-Document-Attributes: Set document values
OpCancelJobs Op = 0x0038 // Cancel-Jobs: Cancel all jobs (administrative)
OpCancelMyJobs Op = 0x0039 // Cancel-My-Jobs: Cancel a user's jobs
OpResubmitJob Op = 0x003a // Resubmit-Job: Copy and reprint a job
OpCloseJob Op = 0x003b // Close-Job: Close a job and start printing
OpIdentifyPrinter Op = 0x003c // Identify-Printer: Make the printer beep, flash, or display a message for identification
OpValidateDocument Op = 0x003d // Validate-Document: Validate document values prior to submission
OpAddDocumentImages Op = 0x003e // Add-Document-Images: Add image(s) from the specified scanner source
OpAcknowledgeDocument Op = 0x003f // Acknowledge-Document: Acknowledge processing of a document
OpAcknowledgeIdentifyPrinter Op = 0x0040 // Acknowledge-Identify-Printer: Acknowledge action on an Identify-Printer request
OpAcknowledgeJob Op = 0x0041 // Acknowledge-Job: Acknowledge processing of a job
OpFetchDocument Op = 0x0042 // Fetch-Document: Fetch a document for processing
OpFetchJob Op = 0x0043 // Fetch-Job: Fetch a job for processing
OpGetOutputDeviceAttributes Op = 0x0044 // Get-Output-Device-Attributes: Get printer information for a specific output device
OpUpdateActiveJobs Op = 0x0045 // Update-Active-Jobs: Update the list of active jobs that a proxy has processed
OpDeregisterOutputDevice Op = 0x0046 // Deregister-Output-Device: Remove an output device
OpUpdateDocumentStatus Op = 0x0047 // Update-Document-Status: Update document values
OpUpdateJobStatus Op = 0x0048 // Update-Job-Status: Update job values
OpupdateOutputDeviceAttributes Op = 0x0049 // Update-Output-Device-Attributes: Update output device values
OpGetNextDocumentData Op = 0x004a // Get-Next-Document-Data: Scan more document data
OpAllocatePrinterResources Op = 0x004b // Allocate-Printer-Resources: Use resources for a printer
OpCreatePrinter Op = 0x004c // Create-Printer: Create a new service
OpDeallocatePrinterResources Op = 0x004d // Deallocate-Printer-Resources: Stop using resources for a printer
OpDeletePrinter Op = 0x004e // Delete-Printer: Delete an existing service
OpGetPrinters Op = 0x004f // Get-Printers: Get a list of services
OpShutdownOnePrinter Op = 0x0050 // Shutdown-One-Printer: Shutdown a service
OpStartupOnePrinter Op = 0x0051 // Startup-One-Printer: Start a service
OpCancelResource Op = 0x0052 // Cancel-Resource: Uninstall a resource
OpCreateResource Op = 0x0053 // Create-Resource: Create a new (empty) resource
OpInstallResource Op = 0x0054 // Install-Resource: Install a resource
OpSendResourceData Op = 0x0055 // Send-Resource-Data: Upload the data for a resource
OpSetResourceAttributes Op = 0x0056 // Set-Resource-Attributes: Set resource object attributes
OpCreateResourceSubscriptions Op = 0x0057 // Create-Resource-Subscriptions: Create event subscriptions for a resource
OpCreateSystemSubscriptions Op = 0x0058 // Create-System-Subscriptions: Create event subscriptions for a system
OpDisableAllPrinters Op = 0x0059 // Disable-All-Printers: Stop accepting new jobs on all services
OpEnableAllPrinters Op = 0x005a // Enable-All-Printers: Start accepting new jobs on all services
OpGetSystemAttributes Op = 0x005b // Get-System-Attributes: Get system object attributes
OpGetSystemSupportedValues Op = 0x005c // Get-System-Supported-Values: Get supported values for system object attributes
OpPauseAllPrinters Op = 0x005d // Pause-All-Printers: Stop all services immediately
OpPauseAllPrintersAfterCurrentJob Op = 0x005e // Pause-All-Printers-After-Current-Job: Stop all services after processing the current jobs
OpRegisterOutputDevice Op = 0x005f // Register-Output-Device: Register a remote service
OpRestartSystem Op = 0x0060 // Restart-System: Restart all services
OpResumeAllPrinters Op = 0x0061 // Resume-All-Printers: Start job processing on all services
OpSetSystemAttributes Op = 0x0062 // Set-System-Attributes: Set system object attributes
OpShutdownAllPrinters Op = 0x0063 // Shutdown-All-Printers: Shutdown all services
OpStartupAllPrinters Op = 0x0064 // Startup-All-Printers: Startup all services
OpCupsGetDefault Op = 0x4001 // CUPS-Get-Default: Get the default printer
OpCupsGetPrinters Op = 0x4002 // CUPS-Get-Printers: Get a list of printers and/or classes
OpCupsAddModifyPrinter Op = 0x4003 // CUPS-Add-Modify-Printer: Add or modify a printer
OpCupsDeletePrinter Op = 0x4004 // CUPS-Delete-Printer: Delete a printer
OpCupsGetClasses Op = 0x4005 // CUPS-Get-Classes: Get a list of classes
OpCupsAddModifyClass Op = 0x4006 // CUPS-Add-Modify-Class: Add or modify a class
OpCupsDeleteClass Op = 0x4007 // CUPS-Delete-Class: Delete a class
OpCupsAcceptJobs Op = 0x4008 // CUPS-Accept-Jobs: Accept new jobs on a printer
OpCupsRejectJobs Op = 0x4009 // CUPS-Reject-Jobs: Reject new jobs on a printer
OpCupsSetDefault Op = 0x400a // CUPS-Set-Default: Set the default printer
OpCupsGetDevices Op = 0x400b // CUPS-Get-Devices: Get a list of supported devices
OpCupsGetPpds Op = 0x400c // CUPS-Get-PPDs: Get a list of supported drivers
OpCupsMoveJob Op = 0x400d // CUPS-Move-Job: Move a job to a different printer
OpCupsAuthenticateJob Op = 0x400e // CUPS-Authenticate-Job: Authenticate a job
OpCupsGetPpd Op = 0x400f // CUPS-Get-PPD: Get a PPD file
OpCupsGetDocument Op = 0x4027 // CUPS-Get-Document: Get a document file
OpCupsCreateLocalPrinter Op = 0x4028 // CUPS-Create-Local-Printer: Create a local (temporary) printer
)
// String() returns a Status name, as defined by RFC 8010
func (op Op) String() string {
if int(op) < len(opNames) {
if s := opNames[op]; s != "" {
return s
}
}
return fmt.Sprintf("0x%4.4x", int(op))
}
var opNames = [...]string{
OpPrintJob: "Print-Job",
OpPrintURI: "Print-URI",
OpValidateJob: "Validate-Job",
OpCreateJob: "Create-Job",
OpSendDocument: "Send-Document",
OpSendURI: "Send-URI",
OpCancelJob: "Cancel-Job",
OpGetJobAttributes: "Get-Job-Attribute",
OpGetJobs: "Get-Jobs",
OpGetPrinterAttributes: "Get-Printer-Attributes",
OpHoldJob: "Hold-Job",
OpReleaseJob: "Release-Job",
OpRestartJob: "Restart-Job",
OpPausePrinter: "Pause-Printer",
OpResumePrinter: "Resume-Printer",
OpPurgeJobs: "Purge-Jobs",
OpSetPrinterAttributes: "Set-Printer-Attributes",
OpSetJobAttributes: "Set-Job-Attributes",
OpGetPrinterSupportedValues: "Get-Printer-Supported-Values",
OpCreatePrinterSubscriptions: "Create-Printer-Subscriptions",
OpCreateJobSubscriptions: "Create-Job-Subscriptions",
OpGetSubscriptionAttributes: "Get-Subscription-Attributes",
OpGetSubscriptions: "Get-Subscriptions",
OpRenewSubscription: "Renew-Subscription",
OpCancelSubscription: "Cancel-Subscription",
OpGetNotifications: "Get-Notifications",
OpSendNotifications: "Send-Notifications",
OpGetResourceAttributes: "Get-Resource-Attributes",
OpGetResourceData: "Get-Resource-Data",
OpGetResources: "Get-Resources",
OpGetPrintSupportFiles: "Get-Printer-Support-Files",
OpEnablePrinter: "Enable-Printer",
OpDisablePrinter: "Disable-Printer",
OpPausePrinterAfterCurrentJob: "Pause-Printer-After-Current-Job",
OpHoldNewJobs: "Hold-New-Jobs",
OpReleaseHeldNewJobs: "Release-Held-New-Jobs",
OpDeactivatePrinter: "Deactivate-Printer",
OpActivatePrinter: "Activate-Printer",
OpRestartPrinter: "Restart-Printer",
OpShutdownPrinter: "Shutdown-Printer",
OpStartupPrinter: "Startup-Printer",
OpReprocessJob: "Reprocess-Job",
OpCancelCurrentJob: "Cancel-Current-Job",
OpSuspendCurrentJob: "Suspend-Current-Job",
OpResumeJob: "Resume-Job",
OpPromoteJob: "Promote-Job",
OpScheduleJobAfter: "Schedule-Job-After",
OpCancelDocument: "Cancel-Document",
OpGetDocumentAttributes: "Get-Document-Attributes",
OpGetDocuments: "Get-Documents",
OpDeleteDocument: "Delete-Document",
OpSetDocumentAttributes: "Set-Document-Attributes",
OpCancelJobs: "Cancel-Jobs",
OpCancelMyJobs: "Cancel-My-Jobs",
OpResubmitJob: "Resubmit-Job",
OpCloseJob: "Close-Job",
OpIdentifyPrinter: "Identify-Printer",
OpValidateDocument: "Validate-Document",
OpAddDocumentImages: "Add-Document-Images",
OpAcknowledgeDocument: "Acknowledge-Document",
OpAcknowledgeIdentifyPrinter: "Acknowledge-Identify-Printer",
OpAcknowledgeJob: "Acknowledge-Job",
OpFetchDocument: "Fetch-Document",
OpFetchJob: "Fetch-Job",
OpGetOutputDeviceAttributes: "Get-Output-Device-Attributes",
OpUpdateActiveJobs: "Update-Active-Jobs",
OpDeregisterOutputDevice: "Deregister-Output-Device",
OpUpdateDocumentStatus: "Update-Document-Status",
OpUpdateJobStatus: "Update-Job-Status",
OpupdateOutputDeviceAttributes: "Update-Output-Device-Attributes",
OpGetNextDocumentData: "Get-Next-Document-Data",
OpAllocatePrinterResources: "Allocate-Printer-Resources",
OpCreatePrinter: "Create-Printer",
OpDeallocatePrinterResources: "Deallocate-Printer-Resources",
OpDeletePrinter: "Delete-Printer",
OpGetPrinters: "Get-Printers",
OpShutdownOnePrinter: "Shutdown-One-Printer",
OpStartupOnePrinter: "Startup-One-Printer",
OpCancelResource: "Cancel-Resource",
OpCreateResource: "Create-Resource",
OpInstallResource: "Install-Resource",
OpSendResourceData: "Send-Resource-Data",
OpSetResourceAttributes: "Set-Resource-Attributes",
OpCreateResourceSubscriptions: "Create-Resource-Subscriptions",
OpCreateSystemSubscriptions: "Create-System-Subscriptions",
OpDisableAllPrinters: "Disable-All-Printers",
OpEnableAllPrinters: "Enable-All-Printers",
OpGetSystemAttributes: "Get-System-Attributes",
OpGetSystemSupportedValues: "Get-System-Supported-Values",
OpPauseAllPrinters: "Pause-All-Printers",
OpPauseAllPrintersAfterCurrentJob: "Pause-All-Printers-After-Current-Job",
OpRegisterOutputDevice: "Register-Output-Device",
OpRestartSystem: "Restart-System",
OpResumeAllPrinters: "Resume-All-Printers",
OpSetSystemAttributes: "Set-System-Attributes",
OpShutdownAllPrinters: "Shutdown-All-Printers",
OpStartupAllPrinters: "Startup-All-Printers",
OpCupsGetDefault: "CUPS-Get-Default",
OpCupsGetPrinters: "CUPS-Get-Printers",
OpCupsAddModifyPrinter: "CUPS-Add-Modify-Printer",
OpCupsDeletePrinter: "CUPS-Delete-Printer",
OpCupsGetClasses: "CUPS-Get-Classes",
OpCupsAddModifyClass: "CUPS-Add-Modify-Class",
OpCupsDeleteClass: "CUPS-Delete-Class",
OpCupsAcceptJobs: "CUPS-Accept-Jobs",
OpCupsRejectJobs: "CUPS-Reject-Jobs",
OpCupsSetDefault: "CUPS-Set-Default",
OpCupsGetDevices: "CUPS-Get-Devices",
OpCupsGetPpds: "CUPS-Get-PPDs",
OpCupsMoveJob: "CUPS-Move-Job",
OpCupsAuthenticateJob: "CUPS-Authenticate-Job",
OpCupsGetPpd: "CUPS-Get-PPD",
OpCupsGetDocument: "CUPS-Get-Document",
OpCupsCreateLocalPrinter: "CUPS-Create-Local-Printer",
}
|