ruby-jss 1.2.4a2 → 1.2.4a3
Sign up to get free protection for your applications and to get access to all the features.
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
|