ruby-jss 1.2.6 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES.md +189 -1
- data/README.md +1 -1
- data/bin/cgrouper +1 -1
- data/bin/jamfHelperBackgrounder +1 -1
- data/bin/netseg-update +1 -1
- data/data/ruby-jss.conf.example +1 -1
- data/lib/jamf.rb +1 -1
- data/lib/jamf/api/abstract_classes/advanced_search.rb +1 -1
- data/lib/jamf/api/abstract_classes/collection_resource.rb +17 -9
- data/lib/jamf/api/abstract_classes/generic_reference.rb +1 -1
- data/lib/jamf/api/abstract_classes/json_object.rb +2 -2
- data/lib/jamf/api/abstract_classes/prestage.rb +2 -2
- data/lib/jamf/api/abstract_classes/prestage_skip_setup_items.rb +1 -1
- data/lib/jamf/api/abstract_classes/resource.rb +1 -1
- data/lib/jamf/api/abstract_classes/singleton_resource.rb +1 -1
- data/lib/jamf/api/attribute_classes/ip_address.rb +1 -1
- data/lib/jamf/api/attribute_classes/timestamp.rb +1 -1
- data/lib/jamf/api/connection.rb +9 -5
- data/lib/jamf/api/connection/api_error.rb +1 -1
- data/lib/jamf/api/connection/api_error_styleguide.rb +1 -1
- data/lib/jamf/api/connection/token.rb +22 -2
- data/lib/jamf/api/json_objects/account_prefs.rb +1 -1
- data/lib/jamf/api/json_objects/android_details.rb +1 -1
- data/lib/jamf/api/json_objects/appletv_details.rb +1 -1
- data/lib/jamf/api/json_objects/attachment.rb +1 -1
- data/lib/jamf/api/json_objects/cellular_network.rb +1 -1
- data/lib/jamf/api/json_objects/change_log_entry.rb +1 -1
- data/lib/jamf/api/json_objects/computer_prestage_skip_setup_items.rb +1 -1
- data/lib/jamf/api/json_objects/country.rb +1 -1
- data/lib/jamf/api/json_objects/criterion.rb +1 -1
- data/lib/jamf/api/json_objects/device_enrollment_device.rb +1 -1
- data/lib/jamf/api/json_objects/device_enrollment_sync_status.rb +1 -1
- data/lib/jamf/api/json_objects/extension_attribute_value.rb +1 -1
- data/lib/jamf/api/json_objects/installed_application.rb +1 -1
- data/lib/jamf/api/json_objects/installed_certificate.rb +1 -1
- data/lib/jamf/api/json_objects/installed_configuration_profile.rb +1 -1
- data/lib/jamf/api/json_objects/installed_ebook.rb +1 -1
- data/lib/jamf/api/json_objects/installed_provisioning_profile.rb +1 -1
- data/lib/jamf/api/json_objects/inventory_preload_extension_attribute.rb +1 -1
- data/lib/jamf/api/json_objects/ios_details.rb +1 -1
- data/lib/jamf/api/json_objects/location.rb +1 -1
- data/lib/jamf/api/json_objects/md_prestage_name.rb +1 -1
- data/lib/jamf/api/json_objects/md_prestage_names.rb +1 -1
- data/lib/jamf/api/json_objects/md_prestage_skip_setup_items.rb +1 -1
- data/lib/jamf/api/json_objects/mobile_device_details.rb +1 -1
- data/lib/jamf/api/json_objects/mobile_device_security.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_assignment.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_location.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_purchasing_data.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_scope.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_sync_status.rb +1 -1
- data/lib/jamf/api/json_objects/purchasing_data.rb +1 -1
- data/lib/jamf/api/mixins/abstract.rb +1 -1
- data/lib/jamf/api/mixins/bulk_deletable.rb +1 -1
- data/lib/jamf/api/mixins/change_log.rb +1 -1
- data/lib/jamf/api/mixins/extendable.rb +1 -1
- data/lib/jamf/api/mixins/immutable.rb +1 -1
- data/lib/jamf/api/mixins/locatable.rb +1 -1
- data/lib/jamf/api/mixins/lockable.rb +1 -1
- data/lib/jamf/api/mixins/referable.rb +1 -1
- data/lib/jamf/api/mixins/searchable.rb +1 -1
- data/lib/jamf/api/mixins/uncreatable.rb +1 -1
- data/lib/jamf/api/mixins/undeletable.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/account.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/advanced_mobile_device_search.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/advanced_user_search.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/building.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/category.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/computer.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/computer_prestage.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/department.rb +2 -2
- data/lib/jamf/api/resources/collection_resources/device_enrollment.rb +4 -4
- data/lib/jamf/api/resources/collection_resources/extension_attribute.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/inventory_preload_record.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/mobile_device.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/mobile_device_prestage.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/script.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/site.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/time_zone.rb +1 -1
- data/lib/jamf/api/resources/singleton_resources/app_store_country_codes.rb +1 -1
- data/lib/jamf/api/resources/singleton_resources/authorization.rb +1 -1
- data/lib/jamf/api/resources/singleton_resources/client_checkin_settings.rb +1 -1
- data/lib/jamf/api/resources/singleton_resources/reenrollment_settings.rb +1 -1
- data/lib/jamf/client.rb +1 -1
- data/lib/jamf/client/jamf_binary.rb +1 -1
- data/lib/jamf/client/jamf_helper.rb +1 -1
- data/lib/jamf/client/management_action.rb +1 -1
- data/lib/jamf/compatibility.rb +1 -1
- data/lib/jamf/composer.rb +1 -1
- data/lib/jamf/configuration.rb +8 -10
- data/lib/jamf/exceptions.rb +1 -1
- data/lib/jamf/ruby_extensions.rb +2 -1
- data/lib/jamf/ruby_extensions/array.rb +2 -2
- data/lib/jamf/ruby_extensions/array/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/array/utils.rb +4 -4
- data/lib/jamf/ruby_extensions/dig.rb +52 -0
- data/lib/jamf/ruby_extensions/filetest.rb +1 -1
- data/lib/jamf/ruby_extensions/filetest/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/hash.rb +1 -1
- data/lib/jamf/ruby_extensions/hash/backports.rb +2 -2
- data/lib/jamf/ruby_extensions/ipaddr.rb +1 -1
- data/lib/jamf/ruby_extensions/ipaddr/utils.rb +1 -1
- data/lib/jamf/ruby_extensions/object.rb +1 -1
- data/lib/jamf/ruby_extensions/object/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/pathname.rb +1 -1
- data/lib/jamf/ruby_extensions/pathname/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/pathname/utils.rb +1 -1
- data/lib/jamf/ruby_extensions/string.rb +1 -1
- data/lib/jamf/ruby_extensions/string/backports.rb +1 -1
- data/lib/jamf/ruby_extensions/string/conversions.rb +1 -1
- data/lib/jamf/ruby_extensions/string/predicates.rb +14 -4
- data/lib/jamf/utility.rb +1 -1
- data/lib/jamf/validate.rb +1 -1
- data/lib/jamf/version.rb +2 -2
- data/lib/jpapi.rb +1 -1
- data/lib/jss-api.rb +1 -1
- data/lib/jss.rb +3 -1
- data/lib/jss/api_connection.rb +3 -30
- data/lib/jss/api_object.rb +23 -4
- data/lib/jss/api_object/account.rb +1 -1
- data/lib/jss/api_object/advanced_search.rb +28 -27
- data/lib/jss/api_object/advanced_search/advanced_computer_search.rb +1 -1
- data/lib/jss/api_object/advanced_search/advanced_mobile_device_search.rb +1 -1
- data/lib/jss/api_object/advanced_search/advanced_user_search.rb +1 -1
- data/lib/jss/api_object/app_store_country_codes.rb +298 -0
- data/lib/jss/api_object/building.rb +1 -1
- data/lib/jss/api_object/categorizable.rb +1 -1
- data/lib/jss/api_object/category.rb +1 -1
- data/lib/jss/api_object/computer.rb +12 -6
- data/lib/jss/api_object/computer/application_installs.rb +1 -1
- data/lib/jss/api_object/computer_invitation.rb +1 -1
- data/lib/jss/api_object/configuration_profile.rb +4 -2
- data/lib/jss/api_object/configuration_profile/mobile_device_configuration_profile.rb +1 -1
- data/lib/jss/api_object/configuration_profile/osx_configuration_profile.rb +1 -1
- data/lib/jss/api_object/creatable.rb +1 -1
- data/lib/jss/api_object/criteriable.rb +1 -1
- data/lib/jss/api_object/criteriable/criteria.rb +1 -1
- data/lib/jss/api_object/criteriable/criterion.rb +1 -1
- data/lib/jss/api_object/department.rb +1 -1
- data/lib/jss/api_object/directory_binding.rb +273 -0
- data/lib/jss/api_object/directory_binding_type.rb +90 -0
- data/lib/jss/api_object/directory_binding_type/active_directory.rb +502 -0
- data/lib/jss/api_object/directory_binding_type/admitmac.rb +525 -0
- data/lib/jss/api_object/directory_binding_type/centrify.rb +212 -0
- data/lib/jss/api_object/directory_binding_type/open_directory.rb +178 -0
- data/lib/jss/api_object/directory_binding_type/powerbroker_identity_services.rb +73 -0
- data/lib/jss/api_object/disk_encryption_configurations.rb +114 -0
- data/lib/jss/api_object/distribution_point.rb +96 -36
- data/lib/jss/api_object/dock_item.rb +137 -0
- data/lib/jss/api_object/ebook.rb +2 -3
- data/lib/jss/api_object/extendable.rb +67 -28
- data/lib/jss/api_object/extension_attribute.rb +5 -4
- data/lib/jss/api_object/extension_attribute/computer_extension_attribute.rb +1 -1
- data/lib/jss/api_object/extension_attribute/mobile_device_extension_attribute.rb +1 -1
- data/lib/jss/api_object/extension_attribute/user_extension_attribute.rb +1 -1
- data/lib/jss/api_object/group.rb +1 -1
- data/lib/jss/api_object/group/computer_group.rb +1 -1
- data/lib/jss/api_object/group/mobile_device_group.rb +1 -1
- data/lib/jss/api_object/group/user_group.rb +1 -1
- data/lib/jss/api_object/ibeacon.rb +1 -1
- data/lib/jss/api_object/ldap_server.rb +1 -1
- data/lib/jss/api_object/locatable.rb +1 -1
- data/lib/jss/api_object/mac_application.rb +108 -9
- data/lib/jss/api_object/management_history.rb +1 -1
- data/lib/jss/api_object/management_history/audit_event.rb +1 -1
- data/lib/jss/api_object/management_history/casper_imaging_log.rb +1 -1
- data/lib/jss/api_object/management_history/casper_remote_log.rb +1 -1
- data/lib/jss/api_object/management_history/computer_usage_log.rb +1 -1
- data/lib/jss/api_object/management_history/ebook.rb +1 -1
- data/lib/jss/api_object/management_history/hashlike.rb +1 -1
- data/lib/jss/api_object/management_history/mac_app_store_app.rb +1 -1
- data/lib/jss/api_object/management_history/mdm_command.rb +1 -1
- data/lib/jss/api_object/management_history/mobile_device_app.rb +1 -1
- data/lib/jss/api_object/management_history/policy_log.rb +1 -1
- data/lib/jss/api_object/management_history/screen_sharing_log.rb +1 -1
- data/lib/jss/api_object/management_history/user_location_change.rb +1 -1
- data/lib/jss/api_object/matchable.rb +1 -1
- data/lib/jss/api_object/mdm.rb +1 -1
- data/lib/jss/api_object/mobile_device.rb +12 -6
- data/lib/jss/api_object/mobile_device_application.rb +13 -1
- data/lib/jss/api_object/netboot_server.rb +1 -1
- data/lib/jss/api_object/network_segment.rb +153 -59
- data/lib/jss/api_object/package.rb +106 -41
- data/lib/jss/api_object/patch_policy.rb +1 -1
- data/lib/jss/api_object/patch_source.rb +1 -1
- data/lib/jss/api_object/patch_source/patch_external_source.rb +1 -1
- data/lib/jss/api_object/patch_source/patch_internal_source.rb +1 -1
- data/lib/jss/api_object/patch_title.rb +1 -1
- data/lib/jss/api_object/patch_title/version.rb +1 -1
- data/lib/jss/api_object/peripheral.rb +1 -1
- data/lib/jss/api_object/peripheral_type.rb +1 -1
- data/lib/jss/api_object/policy.rb +492 -8
- data/lib/jss/api_object/printer.rb +440 -0
- data/lib/jss/api_object/purchasable.rb +1 -1
- data/lib/jss/api_object/removable_macaddr.rb +1 -1
- data/lib/jss/api_object/restricted_software.rb +1 -1
- data/lib/jss/api_object/scopable.rb +1 -1
- data/lib/jss/api_object/scopable/scope.rb +387 -72
- data/lib/jss/api_object/script.rb +1 -1
- data/lib/jss/api_object/self_servable.rb +24 -16
- data/lib/jss/api_object/self_servable/icon.rb +1 -1
- data/lib/jss/api_object/sitable.rb +1 -1
- data/lib/jss/api_object/site.rb +1 -1
- data/lib/jss/api_object/software_update_server.rb +1 -1
- data/lib/jss/api_object/updatable.rb +1 -1
- data/lib/jss/api_object/uploadable.rb +2 -2
- data/lib/jss/api_object/user.rb +43 -2
- data/lib/jss/api_object/vpp_account.rb +209 -0
- data/lib/jss/api_object/vppable.rb +170 -14
- data/lib/jss/api_object/webhook.rb +1 -1
- data/lib/jss/client.rb +1 -1
- data/lib/jss/client/jamf_binary.rb +1 -1
- data/lib/jss/client/jamf_helper.rb +1 -1
- data/lib/jss/client/management_action.rb +1 -1
- data/lib/jss/compatibility.rb +1 -1
- data/lib/jss/composer.rb +2 -2
- data/lib/jss/configuration.rb +1 -1
- data/lib/jss/db_connection.rb +1 -1
- data/lib/jss/exceptions.rb +1 -1
- data/lib/jss/ruby_extensions.rb +1 -1
- data/lib/jss/ruby_extensions/array.rb +1 -1
- data/lib/jss/ruby_extensions/filetest.rb +1 -1
- data/lib/jss/ruby_extensions/hash.rb +1 -1
- data/lib/jss/ruby_extensions/ipaddr.rb +1 -1
- data/lib/jss/ruby_extensions/pathname.rb +1 -1
- data/lib/jss/ruby_extensions/string.rb +1 -1
- data/lib/jss/ruby_extensions/string/backports.rb +1 -1
- data/lib/jss/ruby_extensions/string/conversions.rb +1 -1
- data/lib/jss/ruby_extensions/string/predicates.rb +14 -4
- data/lib/jss/ruby_extensions/time.rb +1 -1
- data/lib/jss/server.rb +1 -1
- data/lib/jss/utility.rb +9 -23
- data/lib/jss/validate.rb +54 -11
- data/lib/jss/version.rb +2 -2
- data/lib/jss/xml_workaround.rb +1 -1
- data/lib/ruby-jss.rb +1 -1
- data/test/bin/runtests +1 -1
- data/test/lib/testhelper.rb +1 -1
- data/test/lib/testhelper/auth.rb +1 -1
- data/test/lib/testhelper/patch_mgmt.rb +1 -1
- data/test/specs/api_connection_spec.rb +1 -1
- data/test/specs/patch01_source_spec.rb +1 -1
- data/test/specs/patch02_internal_source_spec.rb +1 -1
- data/test/specs/patch03_external_source_spec.rb +1 -1
- data/test/specs/patch04_titles_spec.rb +1 -1
- data/test/specs/patch05_policies_spec.rb +1 -1
- data/test/specs/patch06_cleanup_spec.rb +1 -1
- data/test/specs/policy_spec.rb +1 -1
- metadata +15 -2
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
module JSS
|
|
2
|
+
### Module Constants
|
|
3
|
+
#####################################
|
|
4
|
+
|
|
5
|
+
### Module Variables
|
|
6
|
+
#####################################
|
|
7
|
+
|
|
8
|
+
### Module Methods
|
|
9
|
+
#####################################
|
|
10
|
+
|
|
11
|
+
### Classes
|
|
12
|
+
#####################################
|
|
13
|
+
|
|
14
|
+
### Printer object inside JSS
|
|
15
|
+
###
|
|
16
|
+
### @see JSS::APIObject
|
|
17
|
+
class Printer < JSS::APIObject
|
|
18
|
+
## Mix-Ins
|
|
19
|
+
#####################################
|
|
20
|
+
include JSS::Creatable
|
|
21
|
+
include JSS::Updatable
|
|
22
|
+
include JSS::Categorizable
|
|
23
|
+
|
|
24
|
+
## Class Constants
|
|
25
|
+
#####################################
|
|
26
|
+
|
|
27
|
+
### The base for REST resources of this class
|
|
28
|
+
RSRC_BASE = 'printers'.freeze
|
|
29
|
+
|
|
30
|
+
### the hash key used for the JSON list output of all objects in the JSS
|
|
31
|
+
RSRC_LIST_KEY = :printers
|
|
32
|
+
|
|
33
|
+
### The hash key used for the JSON object output
|
|
34
|
+
### It's also used in various error messages
|
|
35
|
+
RSRC_OBJECT_KEY = :printer
|
|
36
|
+
|
|
37
|
+
# Where is the Category in the API JSON?
|
|
38
|
+
CATEGORY_SUBSET = :top
|
|
39
|
+
|
|
40
|
+
# How is the category stored in the API data?
|
|
41
|
+
CATEGORY_DATA_TYPE = String
|
|
42
|
+
|
|
43
|
+
## Attributes
|
|
44
|
+
#####################################
|
|
45
|
+
|
|
46
|
+
### @return [String] The URI path for the specific printer.
|
|
47
|
+
attr_reader :uri
|
|
48
|
+
|
|
49
|
+
### @return [String] The CUPs name to be used
|
|
50
|
+
attr_reader :CUPS_name
|
|
51
|
+
|
|
52
|
+
### @return [String] The physical location of the printer.
|
|
53
|
+
attr_reader :location
|
|
54
|
+
|
|
55
|
+
### @return [String] The specific model of printer.
|
|
56
|
+
attr_reader :model
|
|
57
|
+
|
|
58
|
+
### @return [Boolean] Is this printer to be shared?
|
|
59
|
+
attr_reader :shared
|
|
60
|
+
|
|
61
|
+
### @return [String] Information for this specific printer.
|
|
62
|
+
attr_reader :info
|
|
63
|
+
|
|
64
|
+
### @return [String] Notes for this specific printer.
|
|
65
|
+
attr_reader :notes
|
|
66
|
+
|
|
67
|
+
### @return [Boolean] Make this printer as the default printer upon installation.
|
|
68
|
+
attr_reader :make_default
|
|
69
|
+
|
|
70
|
+
### @return [Boolean] Use a generic PPD.
|
|
71
|
+
attr_reader :use_generic
|
|
72
|
+
|
|
73
|
+
### @return [String] The PPD file name.
|
|
74
|
+
attr_reader :ppd
|
|
75
|
+
|
|
76
|
+
### @return [String] The contents of the PPD file.
|
|
77
|
+
attr_reader :ppd_contents
|
|
78
|
+
|
|
79
|
+
### @return [String] The path the PPD file will be installed.
|
|
80
|
+
attr_reader :ppd_path
|
|
81
|
+
|
|
82
|
+
### @return [String] The OS version requirements seperated by commas
|
|
83
|
+
attr_reader :os_requirements
|
|
84
|
+
|
|
85
|
+
## Constructor
|
|
86
|
+
#####################################
|
|
87
|
+
|
|
88
|
+
###
|
|
89
|
+
def initialize(args = {})
|
|
90
|
+
super args
|
|
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 JSS::MissingDataError, "CUPS_name must be provided." unless !@init_data[:CUPS_name].nil?
|
|
110
|
+
raise JSS::MissingDataError, "uri must be provided." unless !@init_data[:uri].nil?
|
|
111
|
+
|
|
112
|
+
raise JSS::InvalidDataError, "uri must be a String." unless @init_data[:uri].is_a?(String) || @init_data[:uri].nil?
|
|
113
|
+
raise JSS::InvalidDataError, "CUPS_name must be a String." unless @init_data[:CUPS_name].is_a?(String)
|
|
114
|
+
raise JSS::InvalidDataError, "location must be a String." unless @init_data[:location].is_a?(String) || @init_data[:location].nil?
|
|
115
|
+
raise JSS::InvalidDataError, "model must be a String." unless @init_data[:model].is_a?(String) || @init_data[:model].nil?
|
|
116
|
+
raise JSS::InvalidDataError, "info must be a String." unless @init_data[:info].is_a?(String) || @init_data[:info].nil?
|
|
117
|
+
raise JSS::InvalidDataError, "notes must be a String." unless @init_data[:notes].is_a?(String) || @init_data[:notes].nil?
|
|
118
|
+
raise JSS::InvalidDataError, "ppd must be a String." unless @init_data[:ppd].is_a?(String) || @init_data[:ppd].nil?
|
|
119
|
+
raise JSS::InvalidDataError, "ppd_contents must be a String." unless @init_data[:ppd_contents].is_a?(String) || @init_data[:ppd_contents].nil?
|
|
120
|
+
raise JSS::InvalidDataError, "ppd_path must be a String." unless @init_data[:ppd_path].is_a?(String) || @init_data[:ppd_path].nil?
|
|
121
|
+
raise JSS::InvalidDataError, "os_requirements must be a String." unless @init_data[:os_requirements].is_a?(String) || @init_data[:os_requirements].nil?
|
|
122
|
+
raise JSS::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 JSS::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 JSS::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
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
## Class Methods
|
|
144
|
+
#####################################
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
# The URI path for the specific printer.
|
|
148
|
+
#
|
|
149
|
+
# @author Tyler Morgan
|
|
150
|
+
#
|
|
151
|
+
# @param newvalue [String]
|
|
152
|
+
#
|
|
153
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a String
|
|
154
|
+
#
|
|
155
|
+
# @return [void]
|
|
156
|
+
def uri=(newvalue)
|
|
157
|
+
|
|
158
|
+
raise JSS::InvalidDataError, "URI must be a string." unless newvalue.is_a? String
|
|
159
|
+
|
|
160
|
+
@uri = newvalue
|
|
161
|
+
|
|
162
|
+
@need_to_update = true
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
# The CUPs name to be used
|
|
167
|
+
#
|
|
168
|
+
# @author Tyler Morgan
|
|
169
|
+
#
|
|
170
|
+
# @param newvalue [String]
|
|
171
|
+
#
|
|
172
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a String
|
|
173
|
+
#
|
|
174
|
+
# @return [void]
|
|
175
|
+
def CUPS_name=(newvalue)
|
|
176
|
+
|
|
177
|
+
raise JSS::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
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
# The physical location of the printer.
|
|
186
|
+
#
|
|
187
|
+
# @author Tyler Morgan
|
|
188
|
+
#
|
|
189
|
+
# @param newvalue [String]
|
|
190
|
+
#
|
|
191
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a String
|
|
192
|
+
#
|
|
193
|
+
# @return [void]
|
|
194
|
+
def location=(newvalue)
|
|
195
|
+
|
|
196
|
+
raise JSS::InvalidDataError, "location must be a string." unless newvalue.is_a? String
|
|
197
|
+
|
|
198
|
+
@location = newvalue
|
|
199
|
+
|
|
200
|
+
@need_to_update = true
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
# The specific model of printer.
|
|
205
|
+
#
|
|
206
|
+
# @author Tyler Morgan
|
|
207
|
+
#
|
|
208
|
+
# @param newvalue [String]
|
|
209
|
+
#
|
|
210
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a String
|
|
211
|
+
#
|
|
212
|
+
# @return [void]
|
|
213
|
+
def model=(newvalue)
|
|
214
|
+
|
|
215
|
+
raise JSS::InvalidDataError, "model must be a string." unless newvalue.is_a? String
|
|
216
|
+
|
|
217
|
+
@model = newvalue
|
|
218
|
+
|
|
219
|
+
@need_to_update = true
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
# Is this printer to be shared?
|
|
224
|
+
#
|
|
225
|
+
# @author Tyler Morgan
|
|
226
|
+
#
|
|
227
|
+
# @param newvalue [Boolean]
|
|
228
|
+
#
|
|
229
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a Boolean
|
|
230
|
+
#
|
|
231
|
+
# @return [void]
|
|
232
|
+
def shared=(newvalue)
|
|
233
|
+
|
|
234
|
+
raise JSS::InvalidDataError, "shared must be a string." unless newvalue.is_a?(TrueClass) || newvalue.is_a?(FalseClass)
|
|
235
|
+
|
|
236
|
+
@shared = newvalue
|
|
237
|
+
|
|
238
|
+
@need_to_update = true
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
# Information for this specific printer.
|
|
243
|
+
#
|
|
244
|
+
# @author Tyler Morgan
|
|
245
|
+
#
|
|
246
|
+
# @param newvalue [String]
|
|
247
|
+
#
|
|
248
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a String
|
|
249
|
+
#
|
|
250
|
+
# @return [void]
|
|
251
|
+
def info=(newvalue)
|
|
252
|
+
|
|
253
|
+
raise JSS::InvalidDataError, "info must be a string." unless newvalue.is_a? String
|
|
254
|
+
|
|
255
|
+
@info = newvalue
|
|
256
|
+
|
|
257
|
+
@need_to_update = true
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
# Notes for this specific printer.
|
|
262
|
+
#
|
|
263
|
+
# @author Tyler Morgan
|
|
264
|
+
#
|
|
265
|
+
# @param newvalue [String]
|
|
266
|
+
#
|
|
267
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a String
|
|
268
|
+
#
|
|
269
|
+
# @return [void]
|
|
270
|
+
def notes=(newvalue)
|
|
271
|
+
|
|
272
|
+
raise JSS::InvalidDataError, "notes must be a string." unless newvalue.is_a? String
|
|
273
|
+
|
|
274
|
+
@notes = newvalue
|
|
275
|
+
|
|
276
|
+
@need_to_update = true
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
# Make this printer as the default printer upon installation.
|
|
281
|
+
#
|
|
282
|
+
# @author Tyler Morgan
|
|
283
|
+
#
|
|
284
|
+
# @param newvalue [Boolean]
|
|
285
|
+
#
|
|
286
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a Boolean
|
|
287
|
+
#
|
|
288
|
+
# @return [void]
|
|
289
|
+
def make_default=(newvalue)
|
|
290
|
+
|
|
291
|
+
raise JSS::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
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
# Use a generic PPD.
|
|
300
|
+
#
|
|
301
|
+
# @author Tyler Morgan
|
|
302
|
+
#
|
|
303
|
+
# @param newvalue [Boolean]
|
|
304
|
+
#
|
|
305
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a Boolean
|
|
306
|
+
#
|
|
307
|
+
# @return [void]
|
|
308
|
+
def use_generic=(newvalue)
|
|
309
|
+
|
|
310
|
+
raise JSS::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
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
# The PPD file name.
|
|
319
|
+
#
|
|
320
|
+
# @author Tyler Morgan
|
|
321
|
+
#
|
|
322
|
+
# @param newvalue [String]
|
|
323
|
+
#
|
|
324
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a String
|
|
325
|
+
#
|
|
326
|
+
# @return [void]
|
|
327
|
+
def ppd=(newvalue)
|
|
328
|
+
|
|
329
|
+
raise JSS::InvalidDataError, "ppd must be a string." unless newvalue.is_a? String
|
|
330
|
+
|
|
331
|
+
@ppd = newvalue
|
|
332
|
+
|
|
333
|
+
@need_to_update = true
|
|
334
|
+
end
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
# The contents of the PPD file.
|
|
338
|
+
#
|
|
339
|
+
# @author Tyler Morgan
|
|
340
|
+
#
|
|
341
|
+
# @param newvalue [String]
|
|
342
|
+
#
|
|
343
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a String
|
|
344
|
+
#
|
|
345
|
+
# @return [void]
|
|
346
|
+
def ppd_contents=(newvalue)
|
|
347
|
+
|
|
348
|
+
raise JSS::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
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
# The path the PPD file will be installed.
|
|
357
|
+
#
|
|
358
|
+
# @author Tyler Morgan
|
|
359
|
+
#
|
|
360
|
+
# @param newvalue [String]
|
|
361
|
+
#
|
|
362
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a String
|
|
363
|
+
#
|
|
364
|
+
# @return [void]
|
|
365
|
+
def ppd_path=(newvalue)
|
|
366
|
+
|
|
367
|
+
raise JSS::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
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
# The OS version requirements seperated by commas
|
|
376
|
+
#
|
|
377
|
+
# @author Tyler Morgan
|
|
378
|
+
#
|
|
379
|
+
# @param newvalue [String]
|
|
380
|
+
#
|
|
381
|
+
# @raise [JSS::InvalidDataError] If newvalue is not a String
|
|
382
|
+
#
|
|
383
|
+
# @example Limit Printer object to only High Sierra devices and Mojave 10.14.5 OS versions
|
|
384
|
+
# printer.os_requirements = "10.13.x, 10.14.5"
|
|
385
|
+
#
|
|
386
|
+
# @return [void]
|
|
387
|
+
def os_requirements=(newvalue)
|
|
388
|
+
|
|
389
|
+
raise JSS::InvalidDataError, "os_requirements must be a string." unless newvalue.is_a? String
|
|
390
|
+
|
|
391
|
+
@os_requirements = newvalue
|
|
392
|
+
|
|
393
|
+
@need_to_update = true
|
|
394
|
+
end
|
|
395
|
+
|
|
396
|
+
# Remove the various large data
|
|
397
|
+
# from the instance_variables used to create
|
|
398
|
+
# pretty-print (pp) output.
|
|
399
|
+
#
|
|
400
|
+
# @return [Array] the desired instance_variables
|
|
401
|
+
#
|
|
402
|
+
def pretty_print_instance_variables
|
|
403
|
+
vars = super
|
|
404
|
+
vars.delete :@ppd_contents
|
|
405
|
+
vars
|
|
406
|
+
end
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
## Private Instance Methods
|
|
410
|
+
#####################################
|
|
411
|
+
private
|
|
412
|
+
|
|
413
|
+
### Return the xml for creating or updating this script in the JSS
|
|
414
|
+
###
|
|
415
|
+
def rest_xml
|
|
416
|
+
doc = REXML::Document.new
|
|
417
|
+
printer = doc.add_element 'printer'
|
|
418
|
+
|
|
419
|
+
printer.add_element('id').text = @id
|
|
420
|
+
printer.add_element('name').text = @name
|
|
421
|
+
printer.add_element('uri').text = @uri
|
|
422
|
+
printer.add_element('CUPS_name').text = @CUPS_name
|
|
423
|
+
printer.add_element('location').text = @location
|
|
424
|
+
printer.add_element('model').text = @model
|
|
425
|
+
printer.add_element('shared').text = @shared
|
|
426
|
+
printer.add_element('info').text = @info
|
|
427
|
+
printer.add_element('notes').text = @notes
|
|
428
|
+
printer.add_element('make_default').text = @make_default
|
|
429
|
+
printer.add_element('use_generic').text = @use_generic
|
|
430
|
+
printer.add_element('ppd').text = @ppd
|
|
431
|
+
printer.add_element('ppd_contents').text = @ppd_contents
|
|
432
|
+
printer.add_element('ppd_path').text = @ppd_path
|
|
433
|
+
printer.add_element('os_requirements').text = @os_requirements
|
|
434
|
+
add_category_to_xml(doc)
|
|
435
|
+
|
|
436
|
+
doc.to_s
|
|
437
|
+
|
|
438
|
+
end
|
|
439
|
+
end
|
|
440
|
+
end
|