ruby-jss 1.2.4a3 → 1.3.2
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.
- checksums.yaml +4 -4
- data/CHANGES.md +180 -1
- data/README.md +4 -2
- data/bin/cgrouper +1 -1
- data/bin/jamfHelperBackgrounder +1 -1
- data/bin/netseg-update +1 -1
- data/data/ruby-jss.conf.example +1 -1
- data/lib/jamf.rb +2 -1
- data/lib/jamf/api/abstract_classes/advanced_search.rb +1 -1
- data/lib/jamf/api/abstract_classes/collection_resource.rb +54 -38
- data/lib/jamf/api/abstract_classes/generic_reference.rb +1 -1
- data/lib/jamf/api/abstract_classes/json_object.rb +16 -10
- data/lib/jamf/api/abstract_classes/prestage.rb +111 -35
- data/lib/jamf/api/abstract_classes/prestage_skip_setup_items.rb +1 -1
- data/lib/jamf/api/abstract_classes/resource.rb +1 -1
- data/lib/jamf/api/abstract_classes/singleton_resource.rb +1 -1
- data/lib/jamf/api/attribute_classes/ip_address.rb +1 -1
- data/lib/jamf/api/attribute_classes/timestamp.rb +1 -1
- data/lib/jamf/api/connection.rb +166 -69
- data/lib/jamf/api/connection/api_error.rb +1 -1
- data/lib/jamf/api/connection/api_error_styleguide.rb +1 -1
- data/lib/jamf/api/connection/token.rb +87 -16
- data/lib/jamf/api/json_objects/account_prefs.rb +1 -1
- data/lib/jamf/api/json_objects/android_details.rb +1 -1
- data/lib/jamf/api/json_objects/appletv_details.rb +1 -1
- data/lib/jamf/api/json_objects/attachment.rb +1 -1
- data/lib/jamf/api/json_objects/cellular_network.rb +1 -1
- data/lib/jamf/api/json_objects/change_log_entry.rb +1 -1
- data/lib/jamf/api/json_objects/computer_prestage_skip_setup_items.rb +1 -1
- data/lib/jamf/api/json_objects/country.rb +1 -1
- data/lib/jamf/api/json_objects/criterion.rb +1 -1
- data/lib/jamf/api/json_objects/device_enrollment_device.rb +6 -4
- data/lib/jamf/api/json_objects/device_enrollment_sync_status.rb +1 -1
- data/lib/jamf/api/json_objects/extension_attribute_value.rb +1 -1
- data/lib/jamf/api/json_objects/installed_application.rb +1 -1
- data/lib/jamf/api/json_objects/installed_certificate.rb +1 -1
- data/lib/jamf/api/json_objects/installed_configuration_profile.rb +1 -1
- data/lib/jamf/api/json_objects/installed_ebook.rb +1 -1
- data/lib/jamf/api/json_objects/installed_provisioning_profile.rb +1 -1
- data/lib/jamf/api/json_objects/inventory_preload_extension_attribute.rb +1 -1
- data/lib/jamf/api/json_objects/ios_details.rb +1 -1
- data/lib/jamf/api/json_objects/location.rb +1 -1
- data/lib/jamf/api/json_objects/md_prestage_name.rb +1 -1
- data/lib/jamf/api/json_objects/md_prestage_names.rb +1 -1
- data/lib/jamf/api/json_objects/md_prestage_skip_setup_items.rb +1 -1
- data/lib/jamf/api/json_objects/mobile_device_details.rb +1 -1
- data/lib/jamf/api/json_objects/mobile_device_security.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_assignment.rb +5 -3
- data/lib/jamf/api/json_objects/prestage_location.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_purchasing_data.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_scope.rb +1 -1
- data/lib/jamf/api/json_objects/prestage_sync_status.rb +1 -1
- data/lib/jamf/api/json_objects/purchasing_data.rb +1 -1
- data/lib/jamf/api/mixins/abstract.rb +1 -1
- data/lib/jamf/api/mixins/bulk_deletable.rb +1 -1
- data/lib/jamf/api/mixins/change_log.rb +3 -1
- data/lib/jamf/api/mixins/extendable.rb +1 -1
- data/lib/jamf/api/mixins/immutable.rb +1 -1
- data/lib/jamf/api/mixins/locatable.rb +1 -1
- data/lib/jamf/api/mixins/lockable.rb +1 -1
- data/lib/jamf/api/mixins/referable.rb +1 -1
- data/lib/jamf/api/mixins/searchable.rb +3 -3
- data/lib/jamf/api/mixins/uncreatable.rb +1 -1
- data/lib/jamf/api/mixins/undeletable.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/account.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/advanced_mobile_device_search.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/advanced_user_search.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/building.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/category.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/computer.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/computer_prestage.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/department.rb +2 -1
- data/lib/jamf/api/resources/collection_resources/device_enrollment.rb +110 -18
- data/lib/jamf/api/resources/collection_resources/extension_attribute.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/inventory_preload_record.rb +9 -2
- data/lib/jamf/api/resources/collection_resources/mobile_device.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/mobile_device_prestage.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/script.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/site.rb +1 -1
- data/lib/jamf/api/resources/collection_resources/time_zone.rb +119 -0
- data/lib/jamf/api/resources/singleton_resources/app_store_country_codes.rb +1 -1
- data/lib/jamf/api/resources/singleton_resources/authorization.rb +1 -1
- data/lib/jamf/api/resources/singleton_resources/client_checkin_settings.rb +1 -1
- data/lib/jamf/api/resources/singleton_resources/reenrollment_settings.rb +1 -1
- data/lib/jamf/client.rb +59 -4
- data/lib/jamf/client/jamf_binary.rb +1 -1
- data/lib/jamf/client/jamf_helper.rb +1 -1
- data/lib/jamf/client/management_action.rb +1 -1
- data/lib/jamf/compatibility.rb +1 -1
- data/lib/jamf/composer.rb +1 -1
- data/lib/jamf/configuration.rb +6 -8
- data/lib/jamf/exceptions.rb +6 -1
- data/lib/jamf/ruby_extensions.rb +2 -1
- data/lib/jamf/ruby_extensions/array.rb +2 -2
- data/lib/jamf/ruby_extensions/array/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/array/utils.rb +4 -3
- data/lib/jamf/ruby_extensions/dig.rb +52 -0
- data/lib/jamf/ruby_extensions/filetest.rb +1 -1
- data/lib/jamf/ruby_extensions/filetest/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/hash.rb +1 -1
- data/lib/jamf/ruby_extensions/hash/backports.rb +2 -2
- data/lib/jamf/ruby_extensions/ipaddr.rb +1 -1
- data/lib/jamf/ruby_extensions/ipaddr/utils.rb +1 -1
- data/lib/jamf/ruby_extensions/object.rb +1 -1
- data/lib/jamf/ruby_extensions/object/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/pathname.rb +1 -1
- data/lib/jamf/ruby_extensions/pathname/predicates.rb +1 -1
- data/lib/jamf/ruby_extensions/pathname/utils.rb +1 -1
- data/lib/jamf/ruby_extensions/string.rb +1 -1
- data/lib/jamf/ruby_extensions/string/backports.rb +1 -1
- data/lib/jamf/ruby_extensions/string/conversions.rb +1 -1
- data/lib/jamf/ruby_extensions/string/predicates.rb +14 -4
- data/lib/jamf/utility.rb +1 -1
- data/lib/jamf/validate.rb +1 -1
- data/lib/jamf/version.rb +2 -2
- data/lib/jpapi.rb +1 -1
- data/lib/jss-api.rb +1 -1
- data/lib/jss.rb +5 -2
- data/lib/jss/api_connection.rb +3 -30
- data/lib/jss/api_object.rb +16 -3
- data/lib/jss/api_object/account.rb +1 -1
- data/lib/jss/api_object/advanced_search.rb +1 -1
- data/lib/jss/api_object/advanced_search/advanced_computer_search.rb +1 -1
- data/lib/jss/api_object/advanced_search/advanced_mobile_device_search.rb +1 -1
- data/lib/jss/api_object/advanced_search/advanced_user_search.rb +1 -1
- data/lib/jss/api_object/building.rb +1 -1
- data/lib/jss/api_object/categorizable.rb +1 -1
- data/lib/jss/api_object/category.rb +1 -1
- data/lib/jss/api_object/computer.rb +12 -6
- data/lib/jss/api_object/computer/application_installs.rb +1 -1
- data/lib/jss/api_object/computer_invitation.rb +1 -1
- data/lib/jss/api_object/configuration_profile.rb +4 -2
- data/lib/jss/api_object/configuration_profile/mobile_device_configuration_profile.rb +1 -1
- data/lib/jss/api_object/configuration_profile/osx_configuration_profile.rb +1 -1
- data/lib/jss/api_object/creatable.rb +1 -1
- data/lib/jss/api_object/criteriable.rb +10 -5
- data/lib/jss/api_object/criteriable/criteria.rb +26 -10
- data/lib/jss/api_object/criteriable/criterion.rb +1 -1
- data/lib/jss/api_object/department.rb +1 -1
- data/lib/jss/api_object/directory_binding.rb +273 -0
- data/lib/jss/api_object/directory_binding_type.rb +90 -0
- data/lib/jss/api_object/directory_binding_type/active_directory.rb +502 -0
- data/lib/jss/api_object/directory_binding_type/admitmac.rb +525 -0
- data/lib/jss/api_object/directory_binding_type/centrify.rb +212 -0
- data/lib/jss/api_object/directory_binding_type/open_directory.rb +178 -0
- data/lib/jss/api_object/directory_binding_type/powerbroker_identity_services.rb +73 -0
- data/lib/jss/api_object/disk_encryption_configurations.rb +114 -0
- data/lib/jss/api_object/distribution_point.rb +96 -36
- data/lib/jss/api_object/dock_item.rb +137 -0
- data/lib/jss/api_object/ebook.rb +1 -1
- data/lib/jss/api_object/extendable.rb +67 -28
- data/lib/jss/api_object/extension_attribute.rb +1 -1
- data/lib/jss/api_object/extension_attribute/computer_extension_attribute.rb +1 -1
- data/lib/jss/api_object/extension_attribute/mobile_device_extension_attribute.rb +1 -1
- data/lib/jss/api_object/extension_attribute/user_extension_attribute.rb +1 -1
- data/lib/jss/api_object/group.rb +1 -1
- data/lib/jss/api_object/group/computer_group.rb +1 -1
- data/lib/jss/api_object/group/mobile_device_group.rb +1 -1
- data/lib/jss/api_object/group/user_group.rb +1 -1
- data/lib/jss/api_object/ibeacon.rb +1 -1
- data/lib/jss/api_object/ldap_server.rb +1 -1
- data/lib/jss/api_object/locatable.rb +1 -1
- data/lib/jss/api_object/mac_application.rb +1 -1
- data/lib/jss/api_object/management_history.rb +23 -22
- data/lib/jss/api_object/management_history/audit_event.rb +1 -1
- data/lib/jss/api_object/management_history/casper_imaging_log.rb +1 -1
- data/lib/jss/api_object/management_history/casper_remote_log.rb +1 -1
- data/lib/jss/api_object/management_history/computer_usage_log.rb +1 -1
- data/lib/jss/api_object/management_history/ebook.rb +1 -1
- data/lib/jss/api_object/management_history/hashlike.rb +1 -1
- data/lib/jss/api_object/management_history/mac_app_store_app.rb +1 -1
- data/lib/jss/api_object/management_history/mdm_command.rb +1 -1
- data/lib/jss/api_object/management_history/mobile_device_app.rb +1 -1
- data/lib/jss/api_object/management_history/policy_log.rb +1 -1
- data/lib/jss/api_object/management_history/screen_sharing_log.rb +1 -1
- data/lib/jss/api_object/management_history/user_location_change.rb +1 -1
- data/lib/jss/api_object/matchable.rb +1 -1
- data/lib/jss/api_object/mdm.rb +1 -1
- data/lib/jss/api_object/mobile_device.rb +29 -6
- data/lib/jss/api_object/mobile_device_application.rb +13 -1
- data/lib/jss/api_object/netboot_server.rb +1 -1
- data/lib/jss/api_object/network_segment.rb +153 -59
- data/lib/jss/api_object/package.rb +107 -42
- data/lib/jss/api_object/patch_policy.rb +1 -1
- data/lib/jss/api_object/patch_source.rb +1 -1
- data/lib/jss/api_object/patch_source/patch_external_source.rb +1 -1
- data/lib/jss/api_object/patch_source/patch_internal_source.rb +1 -1
- data/lib/jss/api_object/patch_title.rb +1 -1
- data/lib/jss/api_object/patch_title/version.rb +1 -1
- data/lib/jss/api_object/peripheral.rb +1 -1
- data/lib/jss/api_object/peripheral_type.rb +1 -1
- data/lib/jss/api_object/policy.rb +380 -5
- data/lib/jss/api_object/printer.rb +440 -0
- data/lib/jss/api_object/purchasable.rb +1 -1
- data/lib/jss/api_object/removable_macaddr.rb +1 -1
- data/lib/jss/api_object/restricted_software.rb +1 -1
- data/lib/jss/api_object/scopable.rb +1 -1
- data/lib/jss/api_object/scopable/scope.rb +257 -37
- data/lib/jss/api_object/script.rb +1 -1
- data/lib/jss/api_object/self_servable.rb +7 -7
- data/lib/jss/api_object/self_servable/icon.rb +1 -1
- data/lib/jss/api_object/sitable.rb +6 -2
- data/lib/jss/api_object/site.rb +1 -1
- data/lib/jss/api_object/software_update_server.rb +1 -1
- data/lib/jss/api_object/updatable.rb +1 -1
- data/lib/jss/api_object/uploadable.rb +1 -1
- data/lib/jss/api_object/user.rb +5 -3
- data/lib/jss/api_object/vppable.rb +1 -1
- data/lib/jss/api_object/webhook.rb +1 -1
- data/lib/jss/client.rb +1 -1
- data/lib/jss/client/jamf_binary.rb +1 -1
- data/lib/jss/client/jamf_helper.rb +1 -1
- data/lib/jss/client/management_action.rb +1 -1
- data/lib/jss/compatibility.rb +1 -1
- data/lib/jss/composer.rb +2 -2
- data/lib/jss/configuration.rb +1 -1
- data/lib/jss/db_connection.rb +1 -1
- data/lib/jss/exceptions.rb +1 -1
- data/lib/jss/ruby_extensions.rb +1 -1
- data/lib/jss/ruby_extensions/array.rb +1 -1
- data/lib/jss/ruby_extensions/filetest.rb +1 -1
- data/lib/jss/ruby_extensions/hash.rb +1 -1
- data/lib/jss/ruby_extensions/ipaddr.rb +1 -1
- data/lib/jss/ruby_extensions/pathname.rb +1 -1
- data/lib/jss/ruby_extensions/string.rb +1 -1
- data/lib/jss/ruby_extensions/string/backports.rb +1 -1
- data/lib/jss/ruby_extensions/string/conversions.rb +1 -1
- data/lib/jss/ruby_extensions/string/predicates.rb +14 -4
- data/lib/jss/ruby_extensions/time.rb +1 -1
- data/lib/jss/server.rb +1 -1
- data/lib/jss/utility.rb +9 -23
- data/lib/jss/validate.rb +1 -1
- data/lib/jss/version.rb +2 -2
- data/lib/jss/xml_workaround.rb +1 -1
- data/lib/ruby-jss.rb +1 -1
- data/test/bin/runtests +1 -1
- data/test/lib/testhelper.rb +1 -1
- data/test/lib/testhelper/auth.rb +1 -1
- data/test/lib/testhelper/patch_mgmt.rb +1 -1
- data/test/specs/api_connection_spec.rb +1 -1
- data/test/specs/patch01_source_spec.rb +1 -1
- data/test/specs/patch02_internal_source_spec.rb +1 -1
- data/test/specs/patch03_external_source_spec.rb +1 -1
- data/test/specs/patch04_titles_spec.rb +1 -1
- data/test/specs/patch05_policies_spec.rb +1 -1
- data/test/specs/patch06_cleanup_spec.rb +1 -1
- data/test/specs/policy_spec.rb +1 -1
- metadata +16 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -30,6 +30,8 @@ module Jamf
|
|
|
30
30
|
# A token used for a JSS connection
|
|
31
31
|
class Token
|
|
32
32
|
|
|
33
|
+
JAMF_VERSION_RSRC = 'v1/jamf-pro-version'.freeze
|
|
34
|
+
|
|
33
35
|
AUTH_RSRC = 'auth'.freeze
|
|
34
36
|
|
|
35
37
|
NEW_TOKEN_RSRC = "#{AUTH_RSRC}/tokens".freeze
|
|
@@ -56,9 +58,22 @@ module Jamf
|
|
|
56
58
|
# @return [URI] The base API url, e.g. https://myjamf.jamfcloud.com/uapi
|
|
57
59
|
attr_reader :base_url
|
|
58
60
|
|
|
59
|
-
# when was this token created?
|
|
61
|
+
# @return [Jamf::Timestamp] when was this token created?
|
|
60
62
|
attr_reader :login_time
|
|
61
63
|
|
|
64
|
+
# What happened the last time we tried to refresh?
|
|
65
|
+
# :expired_refreshed - token was expired, a new token was created with the pw
|
|
66
|
+
# :expired_pw_failed - token was expired, pw failed to make a new token
|
|
67
|
+
# :expired_no_pw - token was expired, but no pw was given to make a new one
|
|
68
|
+
# :refreshed - the token refresh worked with no need for the pw
|
|
69
|
+
# :refresh_failed - the token refresh failed, and no pw was given to make a new one
|
|
70
|
+
# :refreshed_with_pw - the token refresh failed, pw worked to make a new token
|
|
71
|
+
# :refresh_failed_no_pw - the token refresh failed, pw also failed to make a new token
|
|
72
|
+
# nil - no refresh has been attempted for this token.
|
|
73
|
+
#
|
|
74
|
+
# @return [Symbol, nil] :refreshed, :pw, :expired,:failed, or nil if never refreshed
|
|
75
|
+
attr_reader :last_refresh_result
|
|
76
|
+
|
|
62
77
|
def initialize(**params)
|
|
63
78
|
@valid = false
|
|
64
79
|
@user = params[:user]
|
|
@@ -90,7 +105,7 @@ module Jamf
|
|
|
90
105
|
raise Jamf::AuthenticationError, 'Incorrect name or password'
|
|
91
106
|
else
|
|
92
107
|
# TODO: better error reporting here
|
|
93
|
-
raise 'An error occurred while authenticating'
|
|
108
|
+
raise Jamf::AuthenticationError, 'An error occurred while authenticating'
|
|
94
109
|
end
|
|
95
110
|
end # init_from_pw
|
|
96
111
|
|
|
@@ -118,25 +133,33 @@ module Jamf
|
|
|
118
133
|
end
|
|
119
134
|
|
|
120
135
|
# @return [String]
|
|
121
|
-
def
|
|
122
|
-
|
|
136
|
+
def jamf_version
|
|
137
|
+
raw_jamf_version.split('-').first
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# @return [String]
|
|
141
|
+
def jamf_build
|
|
142
|
+
raw_jamf_version.split('-').last
|
|
123
143
|
end
|
|
124
144
|
|
|
125
145
|
# @return [Boolean]
|
|
126
146
|
def expired?
|
|
127
147
|
return unless @expires
|
|
148
|
+
|
|
128
149
|
Time.now >= @expires
|
|
129
150
|
end
|
|
130
151
|
|
|
131
152
|
# @return [Float]
|
|
132
153
|
def secs_remaining
|
|
133
154
|
return unless @expires
|
|
155
|
+
|
|
134
156
|
@expires - Time.now
|
|
135
157
|
end
|
|
136
158
|
|
|
137
159
|
# @return [String] e.g. "1 week 6 days 23 hours 49 minutes 56 seconds"
|
|
138
160
|
def time_remaining
|
|
139
161
|
return unless @expires
|
|
162
|
+
|
|
140
163
|
Jamf.humanize_secs secs_remaining
|
|
141
164
|
end
|
|
142
165
|
|
|
@@ -155,23 +178,46 @@ module Jamf
|
|
|
155
178
|
# the Jamf::Account object assciated with this token
|
|
156
179
|
def account
|
|
157
180
|
return @account if @account
|
|
181
|
+
|
|
158
182
|
resp = token_connection(AUTH_RSRC, token: @auth_token).get
|
|
159
183
|
return unless resp.success?
|
|
160
184
|
|
|
161
|
-
|
|
185
|
+
@account = Jamf::APIAccount.new resp.body
|
|
162
186
|
end
|
|
163
187
|
|
|
164
|
-
# Use this token to get a fresh one
|
|
165
|
-
|
|
166
|
-
|
|
188
|
+
# Use this token to get a fresh one. If a pw is provided
|
|
189
|
+
# try to use it to get a new token if a proper refresh fails.
|
|
190
|
+
#
|
|
191
|
+
# @param pw [String] Optional password to use if token refresh fails.
|
|
192
|
+
# Must be the correct passwd or the token's user (obviously)
|
|
193
|
+
#
|
|
194
|
+
# @return [Jamf::Timestamp] the new expiration time
|
|
195
|
+
#
|
|
196
|
+
def refresh(pw = nil)
|
|
197
|
+
# gotta have a pw if expired
|
|
198
|
+
if expired?
|
|
199
|
+
# try the passwd
|
|
200
|
+
return refresh_with_passwd(pw, :expired_refreshed, :expired_pw_failed) if pw
|
|
201
|
+
|
|
202
|
+
# no passwd? no chance!
|
|
203
|
+
@last_refresh_result = :expired_no_pw
|
|
204
|
+
raise Jamf::InvalidTokenError, 'Token has expired'
|
|
205
|
+
end
|
|
167
206
|
|
|
207
|
+
# Now try a normal refresh of our non-expired token
|
|
168
208
|
keep_alive_token_resp = token_connection(KEEP_ALIVE_RSRC, token: @auth_token).post
|
|
169
|
-
|
|
170
|
-
|
|
209
|
+
if keep_alive_token_resp.success?
|
|
210
|
+
parse_token_from_response keep_alive_token_resp
|
|
211
|
+
@last_refresh_result = :refreshed
|
|
212
|
+
return expires
|
|
213
|
+
end
|
|
171
214
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
215
|
+
# if we're here, the normal refresh failed, so try the pw
|
|
216
|
+
return refresh_with_passwd(pw, :refreshed_with_pw, :refresh_failed_no_pw) if pw
|
|
217
|
+
|
|
218
|
+
# if we're here, no pw? no chance!
|
|
219
|
+
@last_refresh_result = :refresh_failed
|
|
220
|
+
raise 'An error occurred while refreshing the token' unless pw
|
|
175
221
|
end
|
|
176
222
|
alias keep_alive refresh
|
|
177
223
|
|
|
@@ -185,12 +231,37 @@ module Jamf
|
|
|
185
231
|
#################################
|
|
186
232
|
private
|
|
187
233
|
|
|
234
|
+
# refresh a token using a password, return a result
|
|
235
|
+
# @param pw[String] the password to use
|
|
236
|
+
# @return [JamfTimestamp] the new expiration
|
|
237
|
+
def refresh_with_passwd(pw, success, failure)
|
|
238
|
+
init_from_pw(pw)
|
|
239
|
+
@last_refresh_result = success
|
|
240
|
+
expires
|
|
241
|
+
rescue => e
|
|
242
|
+
@last_refresh_result = failure
|
|
243
|
+
raise e, "#{e}. Status: :#{failure}"
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
# @return [String]
|
|
247
|
+
def raw_jamf_version
|
|
248
|
+
# TODO: Remove this once we require Jamf Pro 10.19 and up
|
|
249
|
+
# the rsrc for getting the version used to be nothing (the
|
|
250
|
+
# base url itself returnedit) but now its JAMF_VERSION_RSRC
|
|
251
|
+
resp = token_connection(Jamf::BLANK, token: @auth_token).get # .body # [:version]
|
|
252
|
+
return resp.body[:version] if resp.success?
|
|
253
|
+
|
|
254
|
+
resp = token_connection(JAMF_VERSION_RSRC, token: @auth_token).get
|
|
255
|
+
return resp.body[:version] if resp.success?
|
|
256
|
+
|
|
257
|
+
raise Jamf::InvalidConnectionError, 'Unable to read Jamf version from the API'
|
|
258
|
+
end
|
|
259
|
+
|
|
188
260
|
# a generic, one-time Faraday connection for token
|
|
189
261
|
# acquision & manipulation
|
|
190
262
|
#
|
|
191
263
|
def token_connection(rsrc, token: nil, pw: nil, timeout: nil, ssl_opts: nil)
|
|
192
|
-
|
|
193
|
-
Faraday.new("#{@base_url}/#{rsrc}", ssl: ssl_opts ) do |con|
|
|
264
|
+
Faraday.new("#{@base_url}/#{rsrc}", ssl: ssl_opts) do |con|
|
|
194
265
|
con.headers[Jamf::Connection::HTTP_ACCEPT_HEADER] = Jamf::Connection::MIME_JSON
|
|
195
266
|
con.response :json, parser_options: { symbolize_names: true }
|
|
196
267
|
con.options[:timeout] = timeout
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -77,10 +77,13 @@ module Jamf
|
|
|
77
77
|
# @!attribute deviceEnrollmentProgramInstanceId
|
|
78
78
|
# @return [Integer]
|
|
79
79
|
deviceEnrollmentProgramInstanceId: {
|
|
80
|
-
class: :integer
|
|
80
|
+
class: :integer,
|
|
81
|
+
aliases: %i[instanceId]
|
|
81
82
|
},
|
|
82
83
|
|
|
83
84
|
# @!attribute prestageId
|
|
85
|
+
# The most recent prestage this device was assigned to, even if
|
|
86
|
+
# currently unassigned to any prestage.
|
|
84
87
|
# @return [Integer]
|
|
85
88
|
prestageId: {
|
|
86
89
|
class: :integer
|
|
@@ -135,6 +138,7 @@ module Jamf
|
|
|
135
138
|
},
|
|
136
139
|
|
|
137
140
|
# @!attribute deviceAssignedDate
|
|
141
|
+
# When Apple assigned this device to this DevEnrollment instance
|
|
138
142
|
# @return [Jamf::Timestamp]
|
|
139
143
|
deviceAssignedDate: {
|
|
140
144
|
class: Jamf::Timestamp
|
|
@@ -146,8 +150,6 @@ module Jamf
|
|
|
146
150
|
# Class Methods
|
|
147
151
|
#########################################
|
|
148
152
|
|
|
149
|
-
|
|
150
|
-
|
|
151
153
|
# Instance Methods
|
|
152
154
|
#########################################
|
|
153
155
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright
|
|
1
|
+
# Copyright 2020 Pixar
|
|
2
2
|
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
# The module
|
|
27
27
|
module Jamf
|
|
28
28
|
|
|
29
|
-
#
|
|
29
|
+
# An assignment of a device to a prestage, placing that
|
|
30
|
+
# device into the prestage's scope
|
|
30
31
|
class PrestageAssignment < Jamf::JSONObject
|
|
31
32
|
|
|
32
33
|
extend Jamf::Immutable
|
|
@@ -48,7 +49,8 @@ module Jamf
|
|
|
48
49
|
# @!attribute userAssigned
|
|
49
50
|
# @return [String]
|
|
50
51
|
userAssigned: {
|
|
51
|
-
class: :string
|
|
52
|
+
class: :string,
|
|
53
|
+
aliases: %i[assignedBy]
|
|
52
54
|
}
|
|
53
55
|
}.freeze
|
|
54
56
|
|