class Jamf::Printer
@see Jamf::APIObject
Constants
- CATEGORY_DATA_TYPE
How is the category stored in the API data?
- CATEGORY_SUBSET
Where is the
Category
in the API JSON?- RSRC_BASE
The base for REST resources of this class
- RSRC_LIST_KEY
the hash key used for the JSON list output of all objects in the
JSS
- RSRC_OBJECT_KEY
The hash key used for the JSON object output It’s also used in various error messages
Attributes
@return [String] The CUPs name to be used
@return [String] Information for this specific printer.
@return [String] The physical location of the printer.
@return [Boolean] Make this printer as the default printer upon installation.
@return [String] The specific model of printer.
@return [String] Notes for this specific printer.
@return [String] The OS version requirements seperated by commas
@return [String] The PPD file name.
@return [String] The contents of the PPD file.
@return [String] The path the PPD file will be installed.
@return [String] The URI path for the specific printer.
@return [Boolean] Use a generic PPD.
Public Class Methods
Jamf::APIObject::new
# File lib/jamf/api/classic/api_objects/printer.rb 89 def initialize(**args) 90 super 91 92 if self.in_jss? 93 94 @uri = @init_data[:uri] 95 @CUPS_name = @init_data[:CUPS_name] 96 @location = @init_data[:location] 97 @model = @init_data[:model] 98 @shared = @init_data[:shared] 99 @info = @init_data[:info] 100 @notes = @init_data[:notes] 101 @make_default = @init_data[:make_default] 102 @use_generic = @init_data[:use_generic] 103 @ppd = @init_data[:ppd] 104 @ppd_contents = @init_data[:ppd_contents] 105 @ppd_path = @init_data[:ppd_path] 106 @os_requirements = @init_data[:os_requirements] 107 else 108 109 raise Jamf::MissingDataError, "CUPS_name must be provided." unless !@init_data[:CUPS_name].nil? 110 raise Jamf::MissingDataError, "uri must be provided." unless !@init_data[:uri].nil? 111 112 raise Jamf::InvalidDataError, "uri must be a String." unless @init_data[:uri].is_a?(String) || @init_data[:uri].nil? 113 raise Jamf::InvalidDataError, "CUPS_name must be a String." unless @init_data[:CUPS_name].is_a?(String) 114 raise Jamf::InvalidDataError, "location must be a String." unless @init_data[:location].is_a?(String) || @init_data[:location].nil? 115 raise Jamf::InvalidDataError, "model must be a String." unless @init_data[:model].is_a?(String) || @init_data[:model].nil? 116 raise Jamf::InvalidDataError, "info must be a String." unless @init_data[:info].is_a?(String) || @init_data[:info].nil? 117 raise Jamf::InvalidDataError, "notes must be a String." unless @init_data[:notes].is_a?(String) || @init_data[:notes].nil? 118 raise Jamf::InvalidDataError, "ppd must be a String." unless @init_data[:ppd].is_a?(String) || @init_data[:ppd].nil? 119 raise Jamf::InvalidDataError, "ppd_contents must be a String." unless @init_data[:ppd_contents].is_a?(String) || @init_data[:ppd_contents].nil? 120 raise Jamf::InvalidDataError, "ppd_path must be a String." unless @init_data[:ppd_path].is_a?(String) || @init_data[:ppd_path].nil? 121 raise Jamf::InvalidDataError, "os_requirements must be a String." unless @init_data[:os_requirements].is_a?(String) || @init_data[:os_requirements].nil? 122 raise Jamf::InvalidDataError, "shared must be a String." unless (@init_data[:shared].is_a?(TrueClass) || @init_data[:shared].is_a?(FalseClass)) || @init_data[:shared].nil? 123 raise Jamf::InvalidDataError, "make_default must be a String." unless (@init_data[:make_default].is_a?(TrueClass) || @init_data[:make_default].is_a?(FalseClass)) || @init_data[:make_default].nil? 124 raise Jamf::InvalidDataError, "use_generic must be a String." unless (@init_data[:use_generic].is_a?(TrueClass) || @init_data[:use_generic].is_a?(FalseClass)) || @init_data[:use_generic].nil? 125 126 @uri = @init_data[:uri] 127 @CUPS_name = @init_data[:CUPS_name] 128 @location = @init_data[:location] 129 @model = @init_data[:model] 130 @shared = @init_data[:shared] 131 @info = @init_data[:info] 132 @notes = @init_data[:notes] 133 @make_default = @init_data[:make_default] 134 @use_generic = @init_data[:use_generic] 135 @ppd = @init_data[:ppd] 136 @ppd_contents = @init_data[:ppd_contents] 137 @ppd_path = @init_data[:ppd_path] 138 @os_requirements = @init_data[:os_requirements] 139 end 140 end
Public Instance Methods
The CUPs name to be used
@author Tyler Morgan
@param newvalue [String]
@raise [Jamf::InvalidDataError] If newvalue is not a String
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 175 def CUPS_name=(newvalue) 176 177 raise Jamf::InvalidDataError, "CUPS_name must be a string." unless newvalue.is_a? String 178 179 @CUPS_name = newvalue 180 181 @need_to_update = true 182 end
Information for this specific printer.
@author Tyler Morgan
@param newvalue [String]
@raise [Jamf::InvalidDataError] If newvalue is not a String
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 251 def info=(newvalue) 252 253 raise Jamf::InvalidDataError, "info must be a string." unless newvalue.is_a? String 254 255 @info = newvalue 256 257 @need_to_update = true 258 end
The physical location of the printer.
@author Tyler Morgan
@param newvalue [String]
@raise [Jamf::InvalidDataError] If newvalue is not a String
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 194 def location=(newvalue) 195 196 raise Jamf::InvalidDataError, "location must be a string." unless newvalue.is_a? String 197 198 @location = newvalue 199 200 @need_to_update = true 201 end
Make this printer as the default printer upon installation.
@author Tyler Morgan
@param newvalue [Boolean]
@raise [Jamf::InvalidDataError] If newvalue is not a Boolean
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 289 def make_default=(newvalue) 290 291 raise Jamf::InvalidDataError, "make_default must be a string." unless newvalue.is_a?(TrueClass) || newvalue.is_a?(FalseClass) 292 293 @make_default = newvalue 294 295 @need_to_update = true 296 end
The specific model of printer.
@author Tyler Morgan
@param newvalue [String]
@raise [Jamf::InvalidDataError] If newvalue is not a String
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 213 def model=(newvalue) 214 215 raise Jamf::InvalidDataError, "model must be a string." unless newvalue.is_a? String 216 217 @model = newvalue 218 219 @need_to_update = true 220 end
Notes for this specific printer.
@author Tyler Morgan
@param newvalue [String]
@raise [Jamf::InvalidDataError] If newvalue is not a String
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 270 def notes=(newvalue) 271 272 raise Jamf::InvalidDataError, "notes must be a string." unless newvalue.is_a? String 273 274 @notes = newvalue 275 276 @need_to_update = true 277 end
The OS version requirements seperated by commas
@author Tyler Morgan
@param newvalue [String, Float, Array, Array]
@raise [Jamf::InvalidDataError] If newvalue is not a String
, Float, Array
containing Strings, or Array
containing Floats.
@example Limit Printer
object to only High Sierra devices and Mojave 10.14.5 OS versions
printer.os_requirements = "10.13.x, 10.14.5"
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 387 def os_requirements=(newvalue) 388 389 if newvalue.is_a? Array 390 # Parse Array 391 raise Jamf::InvalidDataError, "If setting os_requirements with an array, it must contain strings or floats." unless newvalue[0].is_a?(String) || newvalue[0].is_a?(Float) 392 newvalue = newvalue.map { |x| x.to_s }.join(',') 393 else 394 raise Jamf::InvalidDataError, "os_requirements must either be a string, float, or an array containing strings or floats." unless (newvalue.is_a?(String) || newvalue.is_a?(Float)) && !newvalue.nil? 395 end 396 397 @os_requirements = newvalue 398 399 @need_to_update = true 400 end
The PPD file name.
@author Tyler Morgan
@param newvalue [String]
@raise [Jamf::InvalidDataError] If newvalue is not a String
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 327 def ppd=(newvalue) 328 329 raise Jamf::InvalidDataError, "ppd must be a string." unless newvalue.is_a? String 330 331 @ppd = newvalue 332 333 @need_to_update = true 334 end
The contents of the PPD file.
@author Tyler Morgan
@param newvalue [String]
@raise [Jamf::InvalidDataError] If newvalue is not a String
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 346 def ppd_contents=(newvalue) 347 348 raise Jamf::InvalidDataError, "ppd_contents must be a string." unless newvalue.is_a? String 349 350 @ppd_contents = newvalue 351 352 @need_to_update = true 353 end
The path the PPD file will be installed.
@author Tyler Morgan
@param newvalue [String]
@raise [Jamf::InvalidDataError] If newvalue is not a String
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 365 def ppd_path=(newvalue) 366 367 raise Jamf::InvalidDataError, "ppd_path must be a string." unless newvalue.is_a? String 368 369 @ppd_path = newvalue 370 371 @need_to_update = true 372 end
Remove the various large data from the instance_variables used to create pretty-print (pp) output.
@return [Array] the desired instance_variables
Jamf::APIObject#pretty_print_instance_variables
# File lib/jamf/api/classic/api_objects/printer.rb 408 def pretty_print_instance_variables 409 vars = super 410 vars.delete :@ppd_contents 411 vars 412 end
The URI path for the specific printer.
@author Tyler Morgan
@param newvalue [String]
@raise [Jamf::InvalidDataError] If newvalue is not a String
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 156 def uri=(newvalue) 157 158 raise Jamf::InvalidDataError, "URI must be a string." unless newvalue.is_a? String 159 160 @uri = newvalue 161 162 @need_to_update = true 163 end
Use a generic PPD.
@author Tyler Morgan
@param newvalue [Boolean]
@raise [Jamf::InvalidDataError] If newvalue is not a Boolean
@return [void]
# File lib/jamf/api/classic/api_objects/printer.rb 308 def use_generic=(newvalue) 309 310 raise Jamf::InvalidDataError, "use_generic must be a string." unless newvalue.is_a?(TrueClass) || newvalue.is_a?(FalseClass) 311 312 @use_generic = newvalue 313 314 @need_to_update = true 315 end
Private Instance Methods
Return the xml for creating or updating this script in the JSS
# File lib/jamf/api/classic/api_objects/printer.rb 421 def rest_xml 422 doc = REXML::Document.new 423 printer = doc.add_element 'printer' 424 425 printer.add_element('id').text = @id 426 printer.add_element('name').text = @name 427 printer.add_element('uri').text = @uri 428 printer.add_element('CUPS_name').text = @CUPS_name 429 printer.add_element('location').text = @location 430 printer.add_element('model').text = @model 431 printer.add_element('shared').text = @shared 432 printer.add_element('info').text = @info 433 printer.add_element('notes').text = @notes 434 printer.add_element('make_default').text = @make_default 435 printer.add_element('use_generic').text = @use_generic 436 printer.add_element('ppd').text = @ppd 437 printer.add_element('ppd_contents').text = @ppd_contents 438 printer.add_element('ppd_path').text = @ppd_path 439 printer.add_element('os_requirements').text = @os_requirements 440 add_category_to_xml(doc) 441 442 doc.to_s 443 444 end