ruby-jss 1.2.4a2 → 1.2.4a3
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.
Potentially problematic release.
This version of ruby-jss might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/jamf.rb +8 -1
- data/lib/jamf/api/abstract_classes/advanced_search.rb +86 -0
- data/lib/jamf/api/abstract_classes/collection_resource.rb +3 -8
- data/lib/jamf/api/abstract_classes/json_object.rb +11 -5
- data/lib/jamf/api/abstract_classes/prestage.rb +189 -6
- data/lib/jamf/api/abstract_classes/resource.rb +8 -3
- data/lib/jamf/api/connection.rb +19 -9
- data/lib/jamf/api/json_objects/criterion.rb +152 -0
- data/lib/jamf/api/json_objects/device_enrollment_device.rb +156 -0
- data/lib/jamf/api/json_objects/device_enrollment_sync_status.rb +71 -0
- data/lib/jamf/api/json_objects/inventory_preload_extension_attribute.rb +6 -1
- data/lib/jamf/api/json_objects/prestage_assignment.rb +15 -2
- data/lib/jamf/api/json_objects/prestage_scope.rb +5 -2
- data/lib/jamf/api/mixins/immutable.rb +1 -1
- data/lib/jamf/api/mixins/lockable.rb +9 -1
- data/lib/jamf/api/resources/collection_resources/advanced_mobile_device_search.rb +52 -0
- data/lib/jamf/api/resources/collection_resources/advanced_user_search.rb +52 -0
- data/lib/jamf/api/resources/collection_resources/computer_prestage.rb +3 -1
- data/lib/jamf/api/resources/collection_resources/device_enrollment.rb +292 -0
- data/lib/jamf/api/resources/collection_resources/inventory_preload_record.rb +7 -7
- data/lib/jamf/api/resources/collection_resources/{md_prestage.rb → mobile_device_prestage.rb} +5 -3
- data/lib/jamf/exceptions.rb +5 -0
- data/lib/jamf/ruby_extensions/array/utils.rb +26 -12
- data/lib/jamf/version.rb +1 -1
- data/lib/jss/api_object/criteriable/criterion.rb +0 -1
- data/lib/jss/version.rb +1 -1
- metadata +10 -3
@@ -68,7 +68,6 @@ module Jamf
|
|
68
68
|
# The 'clear' instance method won't change these attrs
|
69
69
|
UNCLEARABLE_ATTRS = %i[id serialNumber deviceType].freeze
|
70
70
|
|
71
|
-
|
72
71
|
# Object Model / Attributes
|
73
72
|
# See APIObject class documentation for details
|
74
73
|
# of how the OBJECT_MODEL hash works.
|
@@ -224,7 +223,8 @@ module Jamf
|
|
224
223
|
# @return [Jamf::InventoryPreloadExtensionAttribute]
|
225
224
|
extensionAttributes: {
|
226
225
|
class: Jamf::InventoryPreloadExtensionAttribute,
|
227
|
-
multi: true
|
226
|
+
multi: true,
|
227
|
+
aliases: %i[ext_attrs eas]
|
228
228
|
}
|
229
229
|
|
230
230
|
}.freeze
|
@@ -232,7 +232,7 @@ module Jamf
|
|
232
232
|
parse_object_model
|
233
233
|
|
234
234
|
# TODO: validation for ea's existance and value data type, once EAs are
|
235
|
-
# implemented in JPAPI
|
235
|
+
# implemented in JPAPI (see inventory_preload_extension_attribute.rb)
|
236
236
|
#
|
237
237
|
# @param ea_name[String] The name of the EA being set
|
238
238
|
#
|
@@ -256,15 +256,15 @@ module Jamf
|
|
256
256
|
OBJECT_MODEL.keys.each do |attr|
|
257
257
|
next if UNCLEARABLE_ATTRS.include? attr
|
258
258
|
|
259
|
-
# skip nils
|
260
|
-
curr_val = send attr
|
261
|
-
next unless curr_val
|
262
|
-
|
263
259
|
if attr == :extensionAttributes
|
264
260
|
extensionAttributes = []
|
265
261
|
next
|
266
262
|
end
|
267
263
|
|
264
|
+
# skip nils
|
265
|
+
curr_val = send attr
|
266
|
+
next unless curr_val
|
267
|
+
|
268
268
|
send "#{attr}=", nil
|
269
269
|
end
|
270
270
|
end
|
data/lib/jamf/api/resources/collection_resources/{md_prestage.rb → mobile_device_prestage.rb}
RENAMED
@@ -106,17 +106,18 @@ module Jamf
|
|
106
106
|
names: {
|
107
107
|
class: Jamf::MobileDevicePrestageNames
|
108
108
|
}
|
109
|
-
|
110
109
|
).freeze
|
111
110
|
|
112
111
|
parse_object_model
|
113
112
|
|
113
|
+
# Class Methods
|
114
|
+
###############################################
|
114
115
|
|
115
116
|
def self.sync_status(prestage = nil, latest = false, cnx: Jamf.cnx)
|
116
117
|
@sync_rsrc ||= "#{self::RSRC_VERSION}/#{self::RSRC_PATH}/#{SYNC_RSRC}"
|
117
118
|
|
118
119
|
if prestage
|
119
|
-
id =
|
120
|
+
id = valid_id prestage
|
120
121
|
raise Jamf::NoSuchItemError, "No #{self.class} matching '#{prestage}'" unless id
|
121
122
|
|
122
123
|
rsrc = "#{@sync_rsrc}/#{id}"
|
@@ -126,9 +127,10 @@ module Jamf
|
|
126
127
|
else
|
127
128
|
cnx.get(@sync_rsrc).map { |ss| Jamf::PrestageSyncStatus.new ss }
|
128
129
|
end
|
129
|
-
|
130
130
|
end # self.sync_status(prestage = nil, latest = false, cnx: Jamf.cnx)
|
131
131
|
|
132
|
+
# Instance Methods
|
133
|
+
###############################################
|
132
134
|
|
133
135
|
def sync_status(latest = false)
|
134
136
|
self.class.sync_status @id, latest, cnx: @cnx
|
data/lib/jamf/exceptions.rb
CHANGED
@@ -89,6 +89,11 @@ module Jamf
|
|
89
89
|
#
|
90
90
|
class ConflictError < RuntimeError; end
|
91
91
|
|
92
|
+
# A 409 error specifically raised when a Lockable resource
|
93
|
+
# has changed between fetching and saving.
|
94
|
+
# See the Jamf::Lockable mixin.
|
95
|
+
class VersionLockError < ConflictError; end
|
96
|
+
|
92
97
|
# BadRequestError - raise this when
|
93
98
|
# attempts to PUT or PUSH or DELETE to the API
|
94
99
|
# result in a 400 Bad Request http error.
|
@@ -27,18 +27,32 @@ module JamfRubyExtensions
|
|
27
27
|
|
28
28
|
module Utils
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
30
|
+
# Fetch a string from an Array case-insensitively,
|
31
|
+
# e.g. if my_array contains 'thrasher',
|
32
|
+
# my_array.j_ci_fetch('ThRashEr')
|
33
|
+
# will return 'thrasher'
|
34
|
+
#
|
35
|
+
# returns nil if no match
|
36
|
+
#
|
37
|
+
# @param somestring [String] the String to search for
|
38
|
+
#
|
39
|
+
# @return [String, nil] The matching string as it exists in the Array,
|
40
|
+
# nil if it doesn't exist
|
41
|
+
#
|
42
|
+
def j_ci_fetch(somestring)
|
43
|
+
each { |s| return s if s.is_a?(String) && s.casecmp?(somestring) }
|
44
|
+
nil
|
45
|
+
end
|
46
|
+
|
47
|
+
# case-insensitive version of include?
|
48
|
+
#
|
49
|
+
# @param somestring [String] the String to search for
|
50
|
+
#
|
51
|
+
# @return [Boolean]
|
52
|
+
#
|
53
|
+
def j_ci_include?(somestring)
|
54
|
+
any? { |s| s.casecmp? somestring if s.is_a? String }
|
55
|
+
end
|
42
56
|
|
43
57
|
end # module
|
44
58
|
|
data/lib/jamf/version.rb
CHANGED
data/lib/jss/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-jss
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4a3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Lasell
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: plist
|
@@ -147,6 +147,7 @@ files:
|
|
147
147
|
- bin/netseg-update
|
148
148
|
- data/ruby-jss.conf.example
|
149
149
|
- lib/jamf.rb
|
150
|
+
- lib/jamf/api/abstract_classes/advanced_search.rb
|
150
151
|
- lib/jamf/api/abstract_classes/collection_resource.rb
|
151
152
|
- lib/jamf/api/abstract_classes/generic_reference.rb
|
152
153
|
- lib/jamf/api/abstract_classes/json_object.rb
|
@@ -168,6 +169,9 @@ files:
|
|
168
169
|
- lib/jamf/api/json_objects/change_log_entry.rb
|
169
170
|
- lib/jamf/api/json_objects/computer_prestage_skip_setup_items.rb
|
170
171
|
- lib/jamf/api/json_objects/country.rb
|
172
|
+
- lib/jamf/api/json_objects/criterion.rb
|
173
|
+
- lib/jamf/api/json_objects/device_enrollment_device.rb
|
174
|
+
- lib/jamf/api/json_objects/device_enrollment_sync_status.rb
|
171
175
|
- lib/jamf/api/json_objects/extension_attribute_value.rb
|
172
176
|
- lib/jamf/api/json_objects/installed_application.rb
|
173
177
|
- lib/jamf/api/json_objects/installed_certificate.rb
|
@@ -200,15 +204,18 @@ files:
|
|
200
204
|
- lib/jamf/api/mixins/uncreatable.rb
|
201
205
|
- lib/jamf/api/mixins/undeletable.rb
|
202
206
|
- lib/jamf/api/resources/collection_resources/account.rb
|
207
|
+
- lib/jamf/api/resources/collection_resources/advanced_mobile_device_search.rb
|
208
|
+
- lib/jamf/api/resources/collection_resources/advanced_user_search.rb
|
203
209
|
- lib/jamf/api/resources/collection_resources/building.rb
|
204
210
|
- lib/jamf/api/resources/collection_resources/category.rb
|
205
211
|
- lib/jamf/api/resources/collection_resources/computer.rb
|
206
212
|
- lib/jamf/api/resources/collection_resources/computer_prestage.rb
|
207
213
|
- lib/jamf/api/resources/collection_resources/department.rb
|
214
|
+
- lib/jamf/api/resources/collection_resources/device_enrollment.rb
|
208
215
|
- lib/jamf/api/resources/collection_resources/extension_attribute.rb
|
209
216
|
- lib/jamf/api/resources/collection_resources/inventory_preload_record.rb
|
210
|
-
- lib/jamf/api/resources/collection_resources/md_prestage.rb
|
211
217
|
- lib/jamf/api/resources/collection_resources/mobile_device.rb
|
218
|
+
- lib/jamf/api/resources/collection_resources/mobile_device_prestage.rb
|
212
219
|
- lib/jamf/api/resources/collection_resources/script.rb
|
213
220
|
- lib/jamf/api/resources/collection_resources/site.rb
|
214
221
|
- lib/jamf/api/resources/singleton_resources/app_store_country_codes.rb
|