ruby-jss 1.4.1 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.md +95 -0
- data/THANKS.md +3 -2
- data/lib/jamf.rb +18 -17
- data/lib/jamf/api/base_classes/collection_resource.rb +613 -0
- data/lib/jamf/api/{abstract_classes → base_classes}/json_object.rb +109 -101
- data/lib/jamf/api/{abstract_classes → base_classes}/prestage.rb +55 -30
- data/lib/jamf/api/{abstract_classes → base_classes}/resource.rb +10 -6
- data/lib/jamf/api/{abstract_classes → base_classes}/singleton_resource.rb +4 -3
- data/lib/jamf/api/connection.rb +13 -9
- data/lib/jamf/api/connection/api_error.rb +8 -8
- data/lib/jamf/api/connection/token.rb +16 -15
- data/lib/jamf/api/json_objects/device_enrollment_device.rb +14 -7
- data/lib/jamf/api/json_objects/{location.rb → device_enrollment_device_sync_state.rb} +27 -41
- data/lib/jamf/api/json_objects/device_enrollment_sync_status.rb +1 -1
- data/lib/jamf/api/json_objects/{attachment.rb → locale.rb} +14 -23
- data/lib/jamf/api/json_objects/md_prestage_name.rb +1 -1
- data/lib/jamf/api/json_objects/md_prestage_names.rb +2 -2
- data/lib/jamf/api/json_objects/md_prestage_skip_setup_items.rb +50 -1
- data/lib/jamf/api/json_objects/prestage_assignment.rb +2 -2
- data/lib/jamf/api/json_objects/prestage_location.rb +3 -3
- data/lib/jamf/api/json_objects/prestage_purchasing_data.rb +7 -7
- data/lib/jamf/api/json_objects/prestage_scope.rb +1 -1
- data/lib/jamf/api/{resources/collection_resources → json_objects}/time_zone.rb +9 -23
- data/lib/jamf/api/mixins/{abstract.rb → base_class.rb} +34 -16
- data/lib/jamf/api/mixins/bulk_deletable.rb +27 -6
- data/lib/jamf/api/mixins/change_log.rb +201 -51
- data/lib/jamf/api/{resources/collection_resources/computer.rb → mixins/filterable.rb} +19 -17
- data/lib/jamf/api/mixins/pageable.rb +208 -0
- data/lib/jamf/api/{json_objects/installed_application.rb → mixins/sortable.rb} +33 -33
- data/lib/jamf/api/resources/collection_resources/building.rb +16 -9
- data/lib/jamf/api/resources/collection_resources/category.rb +5 -4
- data/lib/jamf/api/resources/collection_resources/computer_prestage.rb +12 -5
- data/lib/jamf/api/resources/collection_resources/department.rb +0 -2
- data/lib/jamf/api/resources/collection_resources/device_enrollment.rb +10 -10
- data/lib/jamf/api/resources/collection_resources/inventory_preload_record.rb +11 -3
- data/lib/jamf/api/resources/collection_resources/mobile_device_prestage.rb +25 -23
- data/lib/jamf/api/resources/collection_resources/script.rb +61 -25
- data/lib/jamf/api/resources/singleton_resources/app_store_country_codes.rb +15 -5
- data/lib/jamf/api/resources/singleton_resources/locales.rb +155 -0
- data/lib/jamf/api/resources/singleton_resources/time_zones.rb +213 -0
- data/lib/jamf/client.rb +3 -3
- data/lib/jamf/client/management_action.rb +2 -3
- data/lib/jamf/composer.rb +2 -2
- data/lib/jamf/utility.rb +35 -7
- data/lib/jamf/validate.rb +63 -24
- data/lib/jamf/version.rb +1 -1
- data/lib/jss.rb +2 -2
- data/lib/jss/api_connection.rb +114 -406
- data/lib/jss/api_object.rb +3 -19
- data/lib/jss/api_object/categorizable.rb +1 -1
- data/lib/jss/api_object/computer.rb +13 -0
- data/lib/jss/api_object/configuration_profile.rb +61 -5
- data/lib/jss/api_object/directory_binding_type.rb +66 -60
- data/lib/jss/api_object/directory_binding_type/active_directory.rb +71 -34
- data/lib/jss/api_object/directory_binding_type/admitmac.rb +536 -467
- data/lib/jss/api_object/directory_binding_type/centrify.rb +21 -7
- data/lib/jss/api_object/directory_binding_type/open_directory.rb +4 -4
- data/lib/jss/api_object/distribution_point.rb +2 -2
- data/lib/jss/api_object/dock_item.rb +102 -96
- data/lib/jss/api_object/extendable.rb +1 -1
- data/lib/jss/api_object/group.rb +33 -2
- data/lib/jss/api_object/network_segment.rb +45 -13
- data/lib/jss/api_object/patch_source.rb +10 -9
- data/lib/jss/api_object/policy.rb +155 -25
- data/lib/jss/api_object/printer.rb +10 -4
- data/lib/jss/api_object/scopable.rb +10 -15
- data/lib/jss/api_object/scopable/scope.rb +31 -30
- data/lib/jss/api_object/script.rb +242 -352
- data/lib/jss/api_object/user.rb +1 -1
- data/lib/jss/client/management_action.rb +1 -2
- data/lib/jss/composer.rb +2 -2
- data/lib/jss/exceptions.rb +3 -0
- data/lib/jss/server.rb +15 -0
- data/lib/jss/utility.rb +213 -45
- data/lib/jss/version.rb +1 -1
- metadata +46 -64
- data/lib/jamf/api/abstract_classes/advanced_search.rb +0 -86
- data/lib/jamf/api/abstract_classes/collection_resource.rb +0 -433
- data/lib/jamf/api/abstract_classes/generic_reference.rb +0 -145
- data/lib/jamf/api/abstract_classes/prestage_skip_setup_items.rb +0 -126
- data/lib/jamf/api/json_objects/account_prefs.rb +0 -79
- data/lib/jamf/api/json_objects/android_details.rb +0 -139
- data/lib/jamf/api/json_objects/appletv_details.rb +0 -110
- data/lib/jamf/api/json_objects/cellular_network.rb +0 -151
- data/lib/jamf/api/json_objects/computer_prestage_skip_setup_items.rb +0 -67
- data/lib/jamf/api/json_objects/criterion.rb +0 -152
- data/lib/jamf/api/json_objects/extension_attribute_value.rb +0 -128
- data/lib/jamf/api/json_objects/installed_certificate.rb +0 -53
- data/lib/jamf/api/json_objects/installed_configuration_profile.rb +0 -67
- data/lib/jamf/api/json_objects/installed_ebook.rb +0 -58
- data/lib/jamf/api/json_objects/installed_provisioning_profile.rb +0 -59
- data/lib/jamf/api/json_objects/ios_details.rb +0 -244
- data/lib/jamf/api/json_objects/mobile_device_details.rb +0 -219
- data/lib/jamf/api/json_objects/mobile_device_security.rb +0 -101
- data/lib/jamf/api/json_objects/purchasing_data.rb +0 -125
- data/lib/jamf/api/mixins/locatable.rb +0 -124
- data/lib/jamf/api/mixins/referable.rb +0 -92
- data/lib/jamf/api/resources/collection_resources/account.rb +0 -163
- data/lib/jamf/api/resources/collection_resources/advanced_mobile_device_search.rb +0 -52
- data/lib/jamf/api/resources/collection_resources/advanced_user_search.rb +0 -52
- data/lib/jamf/api/resources/collection_resources/extension_attribute.rb +0 -45
- data/lib/jamf/api/resources/collection_resources/mobile_device.rb +0 -315
- data/lib/jamf/api/resources/collection_resources/site.rb +0 -77
- data/lib/jamf/api/resources/singleton_resources/authorization.rb +0 -88
- data/lib/jamf/api/resources/singleton_resources/client_checkin_settings.rb +0 -139
- data/lib/jamf/api/resources/singleton_resources/reenrollment_settings.rb +0 -95
@@ -35,7 +35,7 @@ module Jamf
|
|
35
35
|
# Constants
|
36
36
|
#####################################
|
37
37
|
|
38
|
-
RSRC_VERSION = '
|
38
|
+
RSRC_VERSION = 'v2'.freeze
|
39
39
|
|
40
40
|
RSRC_PATH = 'computer-prestages'.freeze
|
41
41
|
|
@@ -48,28 +48,35 @@ module Jamf
|
|
48
48
|
# @!attribute skipSetupItems
|
49
49
|
# @return [Jamf::ComputerPrestageSkipSetupItems]
|
50
50
|
skipSetupItems: {
|
51
|
-
class:
|
51
|
+
class: :hash
|
52
52
|
},
|
53
53
|
|
54
54
|
# @!attribute isInstallProfilesDuringSetup
|
55
55
|
# @return [Boolean]
|
56
|
-
|
56
|
+
installProfilesDuringSetup: {
|
57
57
|
class: :boolean
|
58
58
|
},
|
59
59
|
|
60
60
|
# @!attribute prestageInstalledProfileIds
|
61
61
|
# @return [Array<Integer>]
|
62
62
|
prestageInstalledProfileIds: {
|
63
|
-
class: :
|
63
|
+
class: :j_id,
|
64
64
|
multi: true
|
65
65
|
},
|
66
66
|
|
67
67
|
# @!attribute customPackageIds
|
68
68
|
# @return [Array<Integer>]
|
69
69
|
customPackageIds: {
|
70
|
-
class: :
|
70
|
+
class: :j_id,
|
71
71
|
multi: true
|
72
|
+
},
|
73
|
+
|
74
|
+
# @!attribute customPackageDistributionPointId
|
75
|
+
# @return [String]
|
76
|
+
customPackageDistributionPointId: {
|
77
|
+
class: :j_id
|
72
78
|
}
|
79
|
+
|
73
80
|
).freeze
|
74
81
|
|
75
82
|
parse_object_model
|
@@ -36,7 +36,6 @@ module Jamf
|
|
36
36
|
#####################################
|
37
37
|
|
38
38
|
include Jamf::ChangeLog
|
39
|
-
include Jamf::Referable
|
40
39
|
|
41
40
|
# Constants
|
42
41
|
#####################################
|
@@ -74,7 +73,6 @@ module Jamf
|
|
74
73
|
|
75
74
|
parse_object_model
|
76
75
|
|
77
|
-
|
78
76
|
end # class
|
79
77
|
|
80
78
|
end # module
|
@@ -61,9 +61,9 @@ module Jamf
|
|
61
61
|
OBJECT_MODEL = {
|
62
62
|
|
63
63
|
# @!attribute id
|
64
|
-
# @return [
|
64
|
+
# @return [String]
|
65
65
|
id: {
|
66
|
-
class: :
|
66
|
+
class: :j_id,
|
67
67
|
identifier: :primary,
|
68
68
|
readonly: true
|
69
69
|
},
|
@@ -76,15 +76,15 @@ module Jamf
|
|
76
76
|
},
|
77
77
|
|
78
78
|
# @!attribute supervisionIdentityId
|
79
|
-
# @return [
|
79
|
+
# @return [String]
|
80
80
|
supervisionIdentityId: {
|
81
|
-
class: :
|
81
|
+
class: :j_id
|
82
82
|
},
|
83
83
|
|
84
84
|
# @!attribute siteId
|
85
|
-
# @return [
|
85
|
+
# @return [String]
|
86
86
|
siteId: {
|
87
|
-
class: :
|
87
|
+
class: :j_id
|
88
88
|
},
|
89
89
|
|
90
90
|
# @!attribute serverName
|
@@ -293,14 +293,14 @@ module Jamf
|
|
293
293
|
|
294
294
|
# disown one or more serial numbers from a given DeviceEnrollment instance
|
295
295
|
#
|
296
|
-
# @param sns[Array<String>] One or more serial numbers to disown
|
296
|
+
# @param sns[String, Array<String>] One or more serial numbers to disown
|
297
297
|
#
|
298
298
|
# @param from_instance [Integer, String] the id or name of the instance
|
299
299
|
# from which to disown the serial numbers
|
300
300
|
#
|
301
301
|
# @param cnx[Jamf::Connection] The API connection to use
|
302
302
|
#
|
303
|
-
# @return [
|
303
|
+
# @return [Hash] The SNs as keys and 'SUCESS' or 'FAILED' as values
|
304
304
|
#
|
305
305
|
def self.disown(*sns, from_instance:, cnx: Jamf.cnx)
|
306
306
|
instance_id = valid_id from_instance, cnx: cnx
|
@@ -311,14 +311,14 @@ module Jamf
|
|
311
311
|
data = { devices: sns }
|
312
312
|
disown_rsrc = "#{self.class::RSRC_VERSION}/#{self.class::RSRC_PATH}/#{instance_id}/#{DISOWN_RSRC}"
|
313
313
|
|
314
|
-
cnx.post(disown_rsrc, data)
|
314
|
+
cnx.post(disown_rsrc, data)[:devices]
|
315
315
|
end
|
316
316
|
|
317
317
|
# Private Class Methods
|
318
318
|
###############################################
|
319
319
|
|
320
320
|
# Private, used by the .devices class method
|
321
|
-
def self.fetch_devices(instance_ident, refresh, cnx)
|
321
|
+
def self.fetch_devices(instance_ident = nil, refresh, cnx)
|
322
322
|
if instance_ident
|
323
323
|
instance_id = valid_id instance_ident, cnx: cnx
|
324
324
|
raise Jamf::NoSuchItemError, "No DeviceEnrollment instance matches '#{instance_ident}'" unless instance_id
|
@@ -51,9 +51,11 @@ module Jamf
|
|
51
51
|
# Constants
|
52
52
|
#####################################
|
53
53
|
|
54
|
-
RSRC_VERSION = '
|
54
|
+
RSRC_VERSION = 'v2'.freeze
|
55
55
|
|
56
|
-
RSRC_PATH = 'inventory-preload'.freeze
|
56
|
+
RSRC_PATH = 'inventory-preload/records'.freeze
|
57
|
+
|
58
|
+
CHANGE_LOG_RSRC = "#{RSRC_VERSION}/inventory-preload/history".freeze
|
57
59
|
|
58
60
|
DEVICE_TYPE_COMPUTER = 'Computer'.freeze
|
59
61
|
DEVICE_TYPE_MOBILE_DEV = 'Mobile Device'.freeze
|
@@ -77,7 +79,7 @@ module Jamf
|
|
77
79
|
# @!attribute [r] id
|
78
80
|
# @return [Integer]
|
79
81
|
id: {
|
80
|
-
class: :
|
82
|
+
class: :j_id,
|
81
83
|
identifier: :primary,
|
82
84
|
readonly: true
|
83
85
|
},
|
@@ -219,6 +221,12 @@ module Jamf
|
|
219
221
|
class: :string
|
220
222
|
},
|
221
223
|
|
224
|
+
# @!attribute vendor
|
225
|
+
# @return [String]
|
226
|
+
vendor: {
|
227
|
+
class: :string
|
228
|
+
},
|
229
|
+
|
222
230
|
# @!attribute extensionAttributes
|
223
231
|
# @return [Jamf::InventoryPreloadExtensionAttribute]
|
224
232
|
extensionAttributes: {
|
@@ -37,7 +37,7 @@ module Jamf
|
|
37
37
|
# Constants
|
38
38
|
#####################################
|
39
39
|
|
40
|
-
RSRC_VERSION = '
|
40
|
+
RSRC_VERSION = 'v2'.freeze
|
41
41
|
|
42
42
|
RSRC_PATH = 'mobile-device-prestages'.freeze
|
43
43
|
|
@@ -50,24 +50,24 @@ module Jamf
|
|
50
50
|
# @!attribute skipSetupItems
|
51
51
|
# @return [Jamf::ComputerPrestageSkipSetupItems]
|
52
52
|
skipSetupItems: {
|
53
|
-
class:
|
53
|
+
class: :hash
|
54
54
|
},
|
55
55
|
|
56
|
-
# @!attribute
|
56
|
+
# @!attribute allowPairing
|
57
57
|
# @return [Boolean]
|
58
|
-
|
58
|
+
allowPairing: {
|
59
59
|
class: :boolean
|
60
60
|
},
|
61
61
|
|
62
|
-
# @!attribute
|
62
|
+
# @!attribute multiUser
|
63
63
|
# @return [Boolean]
|
64
|
-
|
64
|
+
multiUser: {
|
65
65
|
class: :boolean
|
66
66
|
},
|
67
67
|
|
68
|
-
# @!attribute
|
68
|
+
# @!attribute supervised
|
69
69
|
# @return [Boolean]
|
70
|
-
|
70
|
+
supervised: {
|
71
71
|
class: :boolean
|
72
72
|
},
|
73
73
|
|
@@ -79,33 +79,35 @@ module Jamf
|
|
79
79
|
|
80
80
|
# @!attribute isAutoAdvanceSetup
|
81
81
|
# @return [Boolean]
|
82
|
-
|
82
|
+
autoAdvanceSetup: {
|
83
83
|
class: :boolean
|
84
84
|
},
|
85
85
|
|
86
|
-
# @!attribute
|
86
|
+
# @!attribute configureDeviceBeforeSetupAssistant
|
87
87
|
# @return [Boolean]
|
88
|
-
|
88
|
+
configureDeviceBeforeSetupAssistant: {
|
89
89
|
class: :boolean
|
90
90
|
},
|
91
91
|
|
92
|
-
# @!attribute language
|
93
|
-
# @return [String]
|
94
|
-
language: {
|
95
|
-
class: :string
|
96
|
-
},
|
97
|
-
|
98
|
-
# @!attribute region
|
99
|
-
# @return [String]
|
100
|
-
region: {
|
101
|
-
class: :string
|
102
|
-
},
|
103
|
-
|
104
92
|
# @!attribute names
|
105
93
|
# @return [Jamf::MobileDevicePrestageNames]
|
106
94
|
names: {
|
107
95
|
class: Jamf::MobileDevicePrestageNames
|
96
|
+
},
|
97
|
+
|
98
|
+
# @!attribute sendTimezone
|
99
|
+
# @return [Boolean]
|
100
|
+
sendTimezone: {
|
101
|
+
class: :boolean
|
102
|
+
},
|
103
|
+
|
104
|
+
# @!attribute timezone
|
105
|
+
# @return [String]
|
106
|
+
timezone: {
|
107
|
+
class: :string
|
108
108
|
}
|
109
|
+
|
110
|
+
|
109
111
|
).freeze
|
110
112
|
|
111
113
|
parse_object_model
|
@@ -41,9 +41,8 @@ module Jamf
|
|
41
41
|
# Constants
|
42
42
|
#####################################
|
43
43
|
|
44
|
-
RSRC_PATH = 'scripts'.freeze
|
45
|
-
|
46
44
|
RSRC_VERSION = 'v1'.freeze
|
45
|
+
RSRC_PATH = 'scripts'.freeze
|
47
46
|
|
48
47
|
PRIORITY_BEFORE = 'BEFORE'.freeze
|
49
48
|
PRIORITY_AFTER = 'AFTER'.freeze
|
@@ -64,35 +63,40 @@ module Jamf
|
|
64
63
|
# @!attribute [r] id
|
65
64
|
# @return [Integer]
|
66
65
|
id: {
|
67
|
-
class: :
|
66
|
+
class: :j_id,
|
68
67
|
identifier: :primary,
|
69
|
-
readonly: true
|
68
|
+
readonly: true,
|
69
|
+
filter_key: true
|
70
70
|
},
|
71
71
|
|
72
72
|
# @!attribute name
|
73
73
|
# @return [String]
|
74
74
|
name: {
|
75
75
|
class: :string,
|
76
|
-
identifier: true
|
76
|
+
identifier: true,
|
77
|
+
filter_key: true
|
77
78
|
},
|
78
79
|
|
79
80
|
# @!attribute info
|
80
81
|
# @return [String]
|
81
82
|
info: {
|
82
|
-
class: :string
|
83
|
+
class: :string,
|
84
|
+
filter_key: true
|
83
85
|
},
|
84
86
|
|
85
87
|
# @!attribute notes
|
86
88
|
# @return [String]
|
87
89
|
notes: {
|
88
|
-
class: :string
|
90
|
+
class: :string,
|
91
|
+
filter_key: true
|
89
92
|
},
|
90
93
|
|
91
94
|
# @!attribute priority
|
92
95
|
# @return [String]
|
93
96
|
priority: {
|
94
97
|
class: :string,
|
95
|
-
enum: Jamf::Script::PRIORTIES
|
98
|
+
enum: Jamf::Script::PRIORTIES,
|
99
|
+
filter_key: true
|
96
100
|
},
|
97
101
|
|
98
102
|
# TODO: Jamf should standardize object references
|
@@ -101,19 +105,22 @@ module Jamf
|
|
101
105
|
# @!attribute categoryId
|
102
106
|
# @return [Integer]
|
103
107
|
categoryId: {
|
104
|
-
class: :
|
108
|
+
class: :j_id,
|
109
|
+
filter_key: true
|
105
110
|
},
|
106
111
|
|
107
112
|
# @!attribute categoryName
|
108
113
|
# @return [String]
|
109
114
|
categoryName: {
|
110
|
-
class: :string
|
115
|
+
class: :string,
|
116
|
+
filter_key: true
|
111
117
|
},
|
112
118
|
|
113
119
|
# @!attribute osRequirements
|
114
120
|
# @return [String]
|
115
121
|
osRequirements: {
|
116
|
-
class: :string
|
122
|
+
class: :string,
|
123
|
+
filter_key: true
|
117
124
|
},
|
118
125
|
|
119
126
|
# @!attribute scriptContents
|
@@ -121,68 +128,97 @@ module Jamf
|
|
121
128
|
scriptContents: {
|
122
129
|
class: :string,
|
123
130
|
validate: :script_contents,
|
124
|
-
aliases: %i[code]
|
131
|
+
aliases: %i[code],
|
132
|
+
filter_key: true
|
125
133
|
},
|
126
134
|
|
127
135
|
# @!attribute parameter4
|
128
136
|
# @return [String]
|
129
137
|
parameter4: {
|
130
|
-
class: :string
|
138
|
+
class: :string,
|
139
|
+
filter_key: true
|
131
140
|
},
|
132
141
|
|
133
142
|
# @!attribute parameter5
|
134
143
|
# @return [String]
|
135
144
|
parameter5: {
|
136
|
-
class: :string
|
145
|
+
class: :string,
|
146
|
+
filter_key: true
|
137
147
|
},
|
138
148
|
|
139
149
|
# @!attribute parameter6
|
140
150
|
# @return [String]
|
141
151
|
parameter6: {
|
142
|
-
class: :string
|
152
|
+
class: :string,
|
153
|
+
filter_key: true
|
143
154
|
},
|
144
155
|
|
145
156
|
# @!attribute parameter7
|
146
157
|
# @return [String]
|
147
158
|
parameter7: {
|
148
|
-
class: :string
|
159
|
+
class: :string,
|
160
|
+
filter_key: true
|
149
161
|
},
|
150
162
|
|
151
163
|
# @!attribute parameter8
|
152
164
|
# @return [String]
|
153
165
|
parameter8: {
|
154
|
-
class: :string
|
166
|
+
class: :string,
|
167
|
+
filter_key: true
|
155
168
|
},
|
156
169
|
|
157
170
|
# @!attribute parameter9
|
158
171
|
# @return [String]
|
159
172
|
parameter9: {
|
160
|
-
class: :string
|
173
|
+
class: :string,
|
174
|
+
filter_key: true
|
161
175
|
},
|
162
176
|
|
163
177
|
# @!attribute parameter10
|
164
178
|
# @return [String]
|
165
179
|
parameter10: {
|
166
|
-
class: :string
|
180
|
+
class: :string,
|
181
|
+
filter_key: true
|
167
182
|
},
|
168
183
|
|
169
184
|
# @!attribute parameter11
|
170
185
|
# @return [String]
|
171
186
|
parameter11: {
|
172
|
-
class: :string
|
187
|
+
class: :string,
|
188
|
+
filter_key: true
|
173
189
|
}
|
174
190
|
}.freeze
|
175
191
|
|
176
192
|
parse_object_model
|
177
193
|
|
178
|
-
|
179
194
|
# Class Methods
|
180
195
|
##################################
|
181
196
|
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
197
|
+
# Retrieve a script's code without instantiating
|
198
|
+
#
|
199
|
+
# Specify an ident key, either id: or name: and the
|
200
|
+
# value for that ident
|
201
|
+
# e.g. `download id: 123` or `download name: 'myscript'`
|
202
|
+
#
|
203
|
+
# @param cnx [Jamf::Connection] The connection to use, default: Jamf.cnx
|
204
|
+
#
|
205
|
+
# @return [String] The code of the desired script
|
206
|
+
#
|
207
|
+
def self.download(cnx: Jamf.cnx, **ident_and_val)
|
208
|
+
ident, value = ident_and_val.first
|
209
|
+
if ident == :id
|
210
|
+
begin
|
211
|
+
return cnx.download "#{rsrc_path}/#{value}/download"
|
212
|
+
rescue => e
|
213
|
+
raise Jamf::NoSuchItemError, "No script with #{ident} = #{value}" if e.httpStatus == 404
|
214
|
+
|
215
|
+
raise e
|
216
|
+
end # begin
|
217
|
+
end # if
|
218
|
+
id = raw_data(cnx: cnx, **ident_and_val)&.dig(:id)
|
219
|
+
raise Jamf::NoSuchItemError, "No script with #{ident} = #{value}" unless id
|
220
|
+
|
221
|
+
cnx.download "#{rsrc_path}/#{id}/download"
|
186
222
|
end
|
187
223
|
|
188
224
|
end # class
|