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
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 |
# File 'lib/jamf/api/classic/api_objects/mobile_device_extension_attribute.rb', line 77 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 = " SELECT eav.value_on_client AS value, r.date_entered_epoch AS timestamp_epoch\n FROM mobile_device_extension_attribute_values eav JOIN reports r ON eav.report_id = r.report_id\n WHERE r.mobile_device_id = \#{mobile_device_id}\n AND eav.mobile_device_extension_attribute_id = \#{@id}\n ORDER BY timestamp_epoch\n END_Q\n\n qrez = Jamf::DB_CNX.db.query the_query\n history = []\n qrez.each_hash do |entry|\n value =\n case @data_type\n when 'String' then entry['value']\n when 'Integer' then entry['value'].to_i\n when 'Date' then Jamf.parse_time(entry['value'])\n end # case\n newhash = { value: value, timestamp: JSS.epoch_to_time(entry['timestamp_epoch']) }\n history << newhash\n end # each hash\n\n history\nend\n" |
#input_type=(new_val) ⇒ Object
57 58 59 60 61 |
# File 'lib/jamf/api/classic/api_objects/mobile_device_extension_attribute.rb', line 57 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
49 50 51 52 53 |
# File 'lib/jamf/api/classic/api_objects/mobile_device_extension_attribute.rb', line 49 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 |