Class: Jamf::MobileDeviceExtensionAttribute
- Inherits:
-
ExtensionAttribute
- Object
- APIObject
- ExtensionAttribute
- Jamf::MobileDeviceExtensionAttribute
- Defined in:
- lib/jamf/api/classic/api_objects/mobile_device_extension_attribute.rb
Overview
An extension attribute as defined in the JSS
Constant Summary collapse
- RSRC_BASE =
The base for REST resources of this class
'mobiledeviceextensionattributes'.freeze
- RSRC_LIST_KEY =
the hash key used for the JSON list output of all objects in the JSS
:mobile_device_extension_attributes
- RSRC_OBJECT_KEY =
The hash key used for the JSON object output. It’s also used in various error messages
:mobile_device_extension_attribute
- TARGET_CLASS =
these ext attribs are related to these kinds of objects
Jamf::MobileDevice
- ALL_TARGETS_CRITERION =
A criterion that will return all members of the TARGET_CLASS
Jamf::Criteriable::Criterion.new(and_or: 'and', name: 'Last Inventory Update', search_type: 'after (yyyy-mm-dd)', value: '2003-01-01')
- OBJECT_HISTORY_OBJECT_TYPE =
the object type for this object in the object history table. See APIObject#add_object_history_entry
86
Instance Attribute Summary collapse
-
#need_to_update ⇒ Boolean
included
from Updatable
readonly
Do we have unsaved changes?.
Instance Method Summary collapse
-
#history(mobiledevice) ⇒ Array<Hash{:timestamp=>Time,:value=>String,Integer,Time}>
Return an Array of Hashes showing the history of reported values for this EA on one MobileDevice.
- #input_type=(new_val) ⇒ Object
- #web_display=(new_val) ⇒ Object
Constructor Details
This class inherits a constructor from Jamf::ExtensionAttribute
Instance Attribute Details
#need_to_update ⇒ Boolean (readonly) Originally defined in module Updatable
Returns do we have unsaved changes?.
Instance Method Details
#history(mobiledevice) ⇒ Array<Hash{:timestamp=>Time,:value=>String,Integer,Time}>
Return an Array of Hashes showing the history of reported values for this EA on one MobileDevice.
Each hash contains these 2 keys:
-
:value - String, Integer, or Time, depending on @data_type
-
:timestamp - Time
This method requires a MySQL database connection established via Jamf::DB_CNX.connect
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 |
# File 'lib/jamf/api/classic/api_objects/mobile_device_extension_attribute.rb', line 94 def history(mobiledevice) raise Jamf::NoSuchItemError, "EA Not In JSS! Use #create to create this #{RSRC_OBJECT_KEY}." unless @in_jss raise Jamf::InvalidConnectionError, "Database connection required for 'history' query." unless Jamf::DB_CNX.connected? mobile_device_id = Jamf::MobileDevice.valid_id mobiledevice, cnx: @cnx raise Jamf::NoSuchItemError, "No MobileDevice found matching '#{mobiledevice}'" unless mobile_device_id the_query = <<-END_Q SELECT eav.value_on_client AS value, r.date_entered_epoch AS timestamp_epoch FROM mobile_device_extension_attribute_values eav JOIN reports r ON eav.report_id = r.report_id WHERE r.mobile_device_id = #{mobile_device_id} AND eav.mobile_device_extension_attribute_id = #{@id} ORDER BY timestamp_epoch END_Q qrez = Jamf::DB_CNX.db.query the_query history = [] qrez.each_hash do |entry| value = case @data_type when 'String' then entry['value'] when 'Integer' then entry['value'].to_i when 'Date' then Jamf.parse_time(entry['value']) end # case newhash = { value: value, timestamp: JSS.epoch_to_time(entry['timestamp_epoch']) } history << newhash end # each hash history end |
#input_type=(new_val) ⇒ Object
74 75 76 77 78 |
# File 'lib/jamf/api/classic/api_objects/mobile_device_extension_attribute.rb', line 74 def input_type=(new_val) raise Jamf::InvalidDataError, "Mobile Device Extension Attribute input_type cannot be '#{INPUT_TYPE_SCRIPT}'" if new_val == INPUT_TYPE_SCRIPT super end |
#web_display=(new_val) ⇒ Object
66 67 68 69 70 |
# File 'lib/jamf/api/classic/api_objects/mobile_device_extension_attribute.rb', line 66 def web_display=(new_val) raise Jamf::InvalidDataError, "Mobile Device Extension Attributes web_display cannot be '#{WEB_DISPLAY_CHOICE_OS}'" if new_val == WEB_DISPLAY_CHOICE_OS super end |