ruby-jss 4.1.1b2 → 4.2.0b2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (775) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +70 -3
  3. data/README.md +3 -3
  4. data/bin/cgrouper +1 -1
  5. data/bin/jamfHelperBackgrounder +1 -1
  6. data/bin/netseg-update +2 -2
  7. data/data/ruby-jss.conf.example +1 -1
  8. data/lib/jamf/api/classic/api_objects/account.rb +6 -7
  9. data/lib/jamf/api/classic/api_objects/advanced_computer_search.rb +1 -1
  10. data/lib/jamf/api/classic/api_objects/advanced_mobile_device_search.rb +2 -2
  11. data/lib/jamf/api/classic/api_objects/advanced_user_search.rb +2 -2
  12. data/lib/jamf/api/classic/api_objects/building.rb +6 -1
  13. data/lib/jamf/api/classic/api_objects/categorizable.rb +4 -1
  14. data/lib/jamf/api/classic/api_objects/category.rb +7 -2
  15. data/lib/jamf/api/classic/api_objects/computer.rb +1 -1
  16. data/lib/jamf/api/classic/api_objects/computer_extension_attribute.rb +1 -1
  17. data/lib/jamf/api/classic/api_objects/computer_group.rb +1 -3
  18. data/lib/jamf/api/classic/api_objects/computer_invitation.rb +2 -5
  19. data/lib/jamf/api/classic/api_objects/creatable.rb +1 -1
  20. data/lib/jamf/api/classic/api_objects/criteriable/criteria.rb +7 -3
  21. data/lib/jamf/api/classic/api_objects/criteriable/criterion.rb +3 -1
  22. data/lib/jamf/api/classic/api_objects/criteriable.rb +2 -2
  23. data/lib/jamf/api/classic/api_objects/department.rb +2 -2
  24. data/lib/jamf/api/classic/api_objects/distribution_point.rb +9 -8
  25. data/lib/jamf/api/classic/api_objects/ebook.rb +1 -3
  26. data/lib/jamf/api/classic/api_objects/extendable.rb +1 -1
  27. data/lib/jamf/api/classic/api_objects/ibeacon.rb +2 -4
  28. data/lib/jamf/api/classic/api_objects/icon.rb +161 -161
  29. data/lib/jamf/api/classic/api_objects/ldap_server.rb +1 -1
  30. data/lib/jamf/api/classic/api_objects/locatable.rb +3 -3
  31. data/lib/jamf/api/classic/api_objects/mac_application.rb +1 -2
  32. data/lib/jamf/api/classic/api_objects/management_history/audit_event.rb +1 -1
  33. data/lib/jamf/api/classic/api_objects/management_history/casper_imaging_log.rb +1 -1
  34. data/lib/jamf/api/classic/api_objects/management_history/casper_remote_log.rb +1 -1
  35. data/lib/jamf/api/classic/api_objects/management_history/computer_usage_log.rb +1 -1
  36. data/lib/jamf/api/classic/api_objects/management_history/ebook.rb +1 -1
  37. data/lib/jamf/api/classic/api_objects/management_history/hash_like.rb +1 -3
  38. data/lib/jamf/api/classic/api_objects/management_history/mac_app_store_app.rb +1 -1
  39. data/lib/jamf/api/classic/api_objects/management_history/mdm_command.rb +1 -1
  40. data/lib/jamf/api/classic/api_objects/management_history/mobile_device_app.rb +1 -1
  41. data/lib/jamf/api/classic/api_objects/management_history/policy_log.rb +1 -1
  42. data/lib/jamf/api/classic/api_objects/management_history/screen_sharing_log.rb +1 -1
  43. data/lib/jamf/api/classic/api_objects/management_history/user_location_change.rb +1 -1
  44. data/lib/jamf/api/classic/api_objects/management_history.rb +14 -5
  45. data/lib/jamf/api/classic/api_objects/matchable.rb +6 -7
  46. data/lib/jamf/api/classic/api_objects/mdm.rb +1 -1
  47. data/lib/jamf/api/classic/api_objects/mobile_device.rb +1 -1
  48. data/lib/jamf/api/classic/api_objects/mobile_device_application.rb +23 -2
  49. data/lib/jamf/api/classic/api_objects/mobile_device_configuration_profile.rb +1 -1
  50. data/lib/jamf/api/classic/api_objects/mobile_device_extension_attribute.rb +3 -3
  51. data/lib/jamf/api/classic/api_objects/mobile_device_group.rb +6 -7
  52. data/lib/jamf/api/classic/api_objects/netboot_server.rb +2 -5
  53. data/lib/jamf/api/classic/api_objects/network_segment.rb +7 -2
  54. data/lib/jamf/api/classic/api_objects/osx_configuration_profile.rb +3 -3
  55. data/lib/jamf/api/classic/api_objects/package.rb +37 -17
  56. data/lib/jamf/api/classic/api_objects/patch_external_source.rb +7 -2
  57. data/lib/jamf/api/classic/api_objects/patch_internal_source.rb +1 -1
  58. data/lib/jamf/api/classic/api_objects/patch_policy.rb +1 -1
  59. data/lib/jamf/api/classic/api_objects/patch_title/version.rb +1 -1
  60. data/lib/jamf/api/classic/api_objects/patch_title.rb +5 -2
  61. data/lib/jamf/api/classic/api_objects/peripheral.rb +35 -44
  62. data/lib/jamf/api/classic/api_objects/peripheral_type.rb +33 -39
  63. data/lib/jamf/api/classic/api_objects/policy.rb +1 -1
  64. data/lib/jamf/api/classic/api_objects/purchasable.rb +55 -47
  65. data/lib/jamf/api/classic/api_objects/removable_macaddr.rb +3 -4
  66. data/lib/jamf/api/classic/api_objects/restricted_software.rb +6 -2
  67. data/lib/jamf/api/classic/api_objects/scopable/scope.rb +16 -14
  68. data/lib/jamf/api/classic/api_objects/scopable.rb +1 -1
  69. data/lib/jamf/api/classic/api_objects/script.rb +18 -12
  70. data/lib/jamf/api/classic/api_objects/self_servable.rb +26 -8
  71. data/lib/jamf/api/classic/api_objects/sitable.rb +3 -1
  72. data/lib/jamf/api/classic/api_objects/site.rb +1 -2
  73. data/lib/jamf/api/classic/api_objects/software_update_server.rb +2 -4
  74. data/lib/jamf/api/classic/api_objects/updatable.rb +2 -1
  75. data/lib/jamf/api/classic/api_objects/uploadable.rb +1 -1
  76. data/lib/jamf/api/classic/api_objects/user.rb +25 -25
  77. data/lib/jamf/api/classic/api_objects/user_extension_attribute.rb +1 -1
  78. data/lib/jamf/api/classic/api_objects/user_group.rb +6 -8
  79. data/lib/jamf/api/classic/api_objects/vpp_account.rb +1 -1
  80. data/lib/jamf/api/classic/api_objects/vppable.rb +2 -2
  81. data/lib/jamf/api/classic/api_objects/web_hook.rb +12 -5
  82. data/lib/jamf/api/classic/base_classes/advanced_search.rb +6 -7
  83. data/lib/jamf/api/classic/base_classes/api_object.rb +10 -2
  84. data/lib/jamf/api/classic/base_classes/configuration_profile.rb +1 -1
  85. data/lib/jamf/api/classic/base_classes/extension_attribute.rb +2 -4
  86. data/lib/jamf/api/classic/base_classes/group.rb +5 -5
  87. data/lib/jamf/api/classic/base_classes/patch_source.rb +1 -1
  88. data/lib/jamf/api/classic/xml_workaround.rb +1 -1
  89. data/lib/jamf/api/connection/attributes.rb +1 -1
  90. data/lib/jamf/api/connection/cache.rb +1 -1
  91. data/lib/jamf/api/connection/classic_api.rb +1 -1
  92. data/lib/jamf/api/connection/connect.rb +1 -1
  93. data/lib/jamf/api/connection/constants.rb +1 -1
  94. data/lib/jamf/api/connection/default_connection.rb +1 -1
  95. data/lib/jamf/api/connection/jamf_pro_api.rb +29 -3
  96. data/lib/jamf/api/connection/jamf_pro_api_error.rb +5 -5
  97. data/lib/jamf/api/connection/token.rb +1 -1
  98. data/lib/jamf/api/connection.rb +1 -1
  99. data/lib/jamf/api/jamf_pro/api_objects/api_client.rb +2 -6
  100. data/lib/jamf/api/jamf_pro/api_objects/api_integration.rb +1 -1
  101. data/lib/jamf/api/jamf_pro/api_objects/api_role.rb +1 -1
  102. data/lib/jamf/api/jamf_pro/api_objects/computer_prestage.rb +2 -2
  103. data/lib/jamf/api/jamf_pro/api_objects/device_enrollment.rb +1 -1
  104. data/lib/jamf/api/jamf_pro/api_objects/inventory_preload_record.rb +1 -1
  105. data/lib/jamf/api/jamf_pro/api_objects/{jp_building.rb → j_building.rb} +5 -2
  106. data/lib/jamf/api/jamf_pro/api_objects/j_package.rb +724 -0
  107. data/lib/jamf/api/jamf_pro/api_objects/mobile_device_prestage.rb +1 -1
  108. data/lib/jamf/api/jamf_pro/base_classes/oapi_object.rb +4 -4
  109. data/lib/jamf/api/jamf_pro/mixins/bulk_deletable.rb +1 -1
  110. data/lib/jamf/api/jamf_pro/mixins/change_log.rb +1 -1
  111. data/lib/jamf/api/jamf_pro/mixins/collection_resource.rb +1 -7
  112. data/lib/jamf/api/jamf_pro/mixins/computer_recovery_lock.rb +1 -1
  113. data/lib/jamf/api/jamf_pro/mixins/filevault.rb +1 -1
  114. data/lib/jamf/api/jamf_pro/mixins/filterable.rb +1 -3
  115. data/lib/jamf/api/jamf_pro/mixins/immutable.rb +2 -1
  116. data/lib/jamf/api/jamf_pro/mixins/jpapi_resource.rb +1 -2
  117. data/lib/jamf/api/jamf_pro/mixins/lockable.rb +2 -2
  118. data/lib/jamf/api/jamf_pro/mixins/macos_managed_updates.rb +1 -1
  119. data/lib/jamf/api/jamf_pro/mixins/macos_redeploy_mgmt_framework.rb +1 -1
  120. data/lib/jamf/api/jamf_pro/mixins/prestage.rb +1 -1
  121. data/lib/jamf/api/jamf_pro/mixins/sortable.rb +1 -1
  122. data/lib/jamf/api/jamf_pro/mixins/uncreatable.rb +1 -1
  123. data/lib/jamf/api/jamf_pro/mixins/undeletable.rb +1 -1
  124. data/lib/jamf/api/jamf_pro/oapi_schemas/account_settings_request.rb +7 -9
  125. data/lib/jamf/api/jamf_pro/oapi_schemas/account_settings_response.rb +7 -9
  126. data/lib/jamf/api/jamf_pro/oapi_schemas/api_error.rb +1 -1
  127. data/lib/jamf/api/jamf_pro/oapi_schemas/api_error_cause.rb +2 -6
  128. data/lib/jamf/api/jamf_pro/oapi_schemas/api_integration_request.rb +3 -7
  129. data/lib/jamf/api/jamf_pro/oapi_schemas/api_integration_response.rb +6 -8
  130. data/lib/jamf/api/jamf_pro/oapi_schemas/api_integration_search_result.rb +2 -6
  131. data/lib/jamf/api/jamf_pro/oapi_schemas/api_role.rb +2 -6
  132. data/lib/jamf/api/jamf_pro/oapi_schemas/api_role_request.rb +3 -7
  133. data/lib/jamf/api/jamf_pro/oapi_schemas/api_role_result.rb +1 -1
  134. data/lib/jamf/api/jamf_pro/oapi_schemas/authorization_v1.rb +2 -6
  135. data/lib/jamf/api/jamf_pro/oapi_schemas/building.rb +2 -6
  136. data/lib/jamf/api/jamf_pro/oapi_schemas/building_search_results.rb +2 -6
  137. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results_v3.rb +2 -6
  138. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device.rb +6 -8
  139. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device_search_results.rb +2 -6
  140. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_body.rb +3 -7
  141. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_response.rb +3 -7
  142. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance.rb +2 -6
  143. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_search_results.rb +2 -6
  144. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_sync_status.rb +3 -7
  145. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage.rb +2 -6
  146. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage_v2.rb +2 -6
  147. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_token.rb +3 -7
  148. data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage_v3.rb +1 -6
  149. data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage_v2.rb +1 -6
  150. data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results_v1.rb +2 -6
  151. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results_v2.rb +2 -6
  152. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_v2.rb +1 -3
  153. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update.rb +10 -12
  154. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update_response.rb +2 -6
  155. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results_v2.rb +2 -6
  156. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_v2.rb +2 -7
  157. data/lib/jamf/api/jamf_pro/oapi_schemas/o_auth_client_credentials.rb +3 -7
  158. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_note.rb +3 -7
  159. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_v1.rb +2 -6
  160. data/lib/jamf/api/jamf_pro/oapi_schemas/package.rb +1 -1
  161. data/lib/jamf/api/jamf_pro/oapi_schemas/package_manifest.rb +1 -1
  162. data/lib/jamf/api/jamf_pro/oapi_schemas/packages_search_results.rb +1 -1
  163. data/lib/jamf/api/jamf_pro/oapi_schemas/post_computer_prestage_v3.rb +2 -7
  164. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response_v2.rb +2 -6
  165. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_v2.rb +3 -7
  166. data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage_v3.rb +2 -7
  167. data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage_v2.rb +2 -7
  168. data/lib/jamf/api/jamf_pro/oapi_schemas/redeploy_jamf_management_framework_response.rb +3 -7
  169. data/lib/jamf/api/jamf_pro/oapi_schemas.rb +1 -1
  170. data/lib/jamf/api/jamf_pro/other_classes/change_log_entry.rb +1 -1
  171. data/lib/jamf/api/jamf_pro/other_classes/ip_address.rb +2 -3
  172. data/lib/jamf/api/jamf_pro/other_classes/pager.rb +1 -1
  173. data/lib/jamf/api/jamf_pro/other_classes/timestamp.rb +1 -1
  174. data/lib/jamf/base_class.rb +1 -1
  175. data/lib/jamf/client/jamf_binary.rb +1 -1
  176. data/lib/jamf/client/jamf_helper.rb +1 -1
  177. data/lib/jamf/client/management_action.rb +1 -1
  178. data/lib/jamf/client.rb +5 -1
  179. data/lib/jamf/composer.rb +2 -1
  180. data/lib/jamf/configuration.rb +137 -138
  181. data/lib/jamf/constants.rb +1 -1
  182. data/lib/jamf/db_connection.rb +13 -19
  183. data/lib/jamf/deprecations/deprecated_api_connection_class.rb +1 -1
  184. data/lib/jamf/deprecations/deprecated_api_constant.rb +3 -1
  185. data/lib/jamf/deprecations/deprecated_config_constant.rb +3 -1
  186. data/lib/jamf/deprecations.rb +1 -1
  187. data/lib/jamf/exceptions.rb +2 -2
  188. data/lib/jamf/oapi_validate.rb +1 -1
  189. data/lib/jamf/ruby_extensions/array/predicates.rb +1 -1
  190. data/lib/jamf/ruby_extensions/array/utils.rb +1 -1
  191. data/lib/jamf/ruby_extensions/array.rb +1 -1
  192. data/lib/jamf/ruby_extensions/filetest/predicates.rb +1 -1
  193. data/lib/jamf/ruby_extensions/filetest.rb +1 -1
  194. data/lib/jamf/ruby_extensions/hash/utils.rb +2 -2
  195. data/lib/jamf/ruby_extensions/hash.rb +1 -1
  196. data/lib/jamf/ruby_extensions/ipaddr/utils.rb +11 -13
  197. data/lib/jamf/ruby_extensions/ipaddr.rb +1 -1
  198. data/lib/jamf/ruby_extensions/object/predicates.rb +1 -1
  199. data/lib/jamf/ruby_extensions/object.rb +1 -1
  200. data/lib/jamf/ruby_extensions/pathname/predicates.rb +1 -1
  201. data/lib/jamf/ruby_extensions/pathname/utils.rb +1 -1
  202. data/lib/jamf/ruby_extensions/pathname.rb +1 -1
  203. data/lib/jamf/ruby_extensions/string/conversions.rb +1 -1
  204. data/lib/jamf/ruby_extensions/string/predicates.rb +1 -1
  205. data/lib/jamf/ruby_extensions/string.rb +1 -1
  206. data/lib/jamf/ruby_extensions/time/utils.rb +2 -3
  207. data/lib/jamf/ruby_extensions/time.rb +1 -1
  208. data/lib/jamf/ruby_extensions.rb +1 -1
  209. data/lib/jamf/utility.rb +1 -1
  210. data/lib/jamf/validate.rb +1 -1
  211. data/lib/jamf/version.rb +2 -2
  212. data/lib/jamf/zeitwerk_config.rb +1 -1
  213. data/lib/jamf.rb +1 -1
  214. data/lib/jss-api.rb +1 -1
  215. data/lib/jss.rb +1 -1
  216. data/lib/ruby-jss.rb +1 -1
  217. data/test/bin/runtests +1 -1
  218. data/test/lib/jamf_test/APITest.rb +7 -6
  219. data/test/lib/jamf_test/advanced_search.rb +1 -2
  220. data/test/lib/jamf_test/auth.rb +1 -1
  221. data/test/lib/jamf_test/collection_tests.rb +3 -3
  222. data/test/lib/jamf_test/prestage_tests.rb +1 -1
  223. data/test/lib/jamf_test.rb +1 -1
  224. data/test/tests/advanced_computer_search.rb +1 -1
  225. data/test/tests/advanced_mobile_device_search.rb +1 -1
  226. data/test/tests/advanced_user_search.rb +1 -1
  227. data/test/tests/building.rb +1 -1
  228. data/test/tests/category.rb +1 -1
  229. data/test/tests/computer.rb +1 -1
  230. data/test/tests/computer_group.rb +1 -2
  231. data/test/tests/computer_prestage.rb +1 -1
  232. data/test/tests/department.rb +1 -1
  233. data/test/tests/device_enrollment.rb +4 -2
  234. data/test/tests/inventory_preload_record.rb +1 -1
  235. data/test/tests/jp_building.rb +1 -1
  236. data/test/tests/mobile_device.rb +1 -1
  237. data/test/tests/mobile_device_prestage.rb +1 -2
  238. data/test/tests/policy.rb +1 -1
  239. metadata +4 -539
  240. data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_preview_search_results.rb +0 -90
  241. data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_v2_search_results.rb +0 -90
  242. data/lib/jamf/api/jamf_pro/oapi_schemas/account.rb +0 -159
  243. data/lib/jamf/api/jamf_pro/oapi_schemas/account_driven_user_enrollment_session_token_settings.rb +0 -97
  244. data/lib/jamf/api/jamf_pro/oapi_schemas/account_group.rb +0 -123
  245. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences.rb +0 -107
  246. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_search_type.rb +0 -105
  247. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_user_interface_display_theme.rb +0 -88
  248. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v1.rb +0 -105
  249. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v4.rb +0 -142
  250. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v5.rb +0 -299
  251. data/lib/jamf/api/jamf_pro/oapi_schemas/activation_code.rb +0 -86
  252. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search.rb +0 -117
  253. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_criteria_choices.rb +0 -83
  254. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_search_results.rb +0 -91
  255. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search.rb +0 -117
  256. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search_search_results.rb +0 -91
  257. data/lib/jamf/api/jamf_pro/oapi_schemas/api_role_privileges.rb +0 -87
  258. data/lib/jamf/api/jamf_pro/oapi_schemas/app_analytics_setting.rb +0 -87
  259. data/lib/jamf/api/jamf_pro/oapi_schemas/app_config_reinstall_code.rb +0 -82
  260. data/lib/jamf/api/jamf_pro/oapi_schemas/app_path.rb +0 -90
  261. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field.rb +0 -115
  262. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field_search_results.rb +0 -91
  263. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_settings.rb +0 -104
  264. data/lib/jamf/api/jamf_pro/oapi_schemas/application_attributes.rb +0 -87
  265. data/lib/jamf/api/jamf_pro/oapi_schemas/application_configuration.rb +0 -87
  266. data/lib/jamf/api/jamf_pro/oapi_schemas/assign_remove_profile_response_sync_state.rb +0 -112
  267. data/lib/jamf/api/jamf_pro/oapi_schemas/assignment.rb +0 -88
  268. data/lib/jamf/api/jamf_pro/oapi_schemas/attributes.rb +0 -100
  269. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account.rb +0 -159
  270. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account_v1.rb +0 -159
  271. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token.rb +0 -88
  272. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token_v1.rb +0 -90
  273. data/lib/jamf/api/jamf_pro/oapi_schemas/authentication_type.rb +0 -97
  274. data/lib/jamf/api/jamf_pro/oapi_schemas/authorization.rb +0 -105
  275. data/lib/jamf/api/jamf_pro/oapi_schemas/available_os_updates.rb +0 -82
  276. data/lib/jamf/api/jamf_pro/oapi_schemas/available_updates.rb +0 -83
  277. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration.rb +0 -94
  278. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_request.rb +0 -92
  279. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_update.rb +0 -92
  280. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_mappings.rb +0 -156
  281. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration.rb +0 -160
  282. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_request.rb +0 -152
  283. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_update.rb +0 -138
  284. data/lib/jamf/api/jamf_pro/oapi_schemas/branding_image_url.rb +0 -86
  285. data/lib/jamf/api/jamf_pro/oapi_schemas/cache_settings.rb +0 -150
  286. data/lib/jamf/api/jamf_pro/oapi_schemas/categories_search_results.rb +0 -91
  287. data/lib/jamf/api/jamf_pro/oapi_schemas/category.rb +0 -104
  288. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_details.rb +0 -92
  289. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_identity_v2.rb +0 -112
  290. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_key.rb +0 -89
  291. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_record.rb +0 -146
  292. data/lib/jamf/api/jamf_pro/oapi_schemas/change_password.rb +0 -94
  293. data/lib/jamf/api/jamf_pro/oapi_schemas/classic_ldap_mappings.rb +0 -168
  294. data/lib/jamf/api/jamf_pro/oapi_schemas/clear_restrictions_password_command.rb +0 -77
  295. data/lib/jamf/api/jamf_pro/oapi_schemas/client_check_in_v3.rb +0 -134
  296. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_distribution_point_upload_capability.rb +0 -88
  297. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common.rb +0 -108
  298. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_request.rb +0 -97
  299. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_response.rb +0 -108
  300. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_pool_statistics.rb +0 -170
  301. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_status.rb +0 -83
  302. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore.rb +0 -102
  303. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore_file.rb +0 -103
  304. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_request.rb +0 -101
  305. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_response.rb +0 -101
  306. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_request.rb +0 -157
  307. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_response.rb +0 -154
  308. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_update.rb +0 -154
  309. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_response.rb +0 -88
  310. data/lib/jamf/api/jamf_pro/oapi_schemas/compliance_vendor_device_information.rb +0 -84
  311. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_application.rb +0 -124
  312. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_attachment.rb +0 -102
  313. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_certificate.rb +0 -151
  314. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_configuration_profile.rb +0 -118
  315. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching.rb +0 -372
  316. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_alert.rb +0 -120
  317. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_cache_detail.rb +0 -97
  318. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error.rb +0 -98
  319. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error_user_info.rb +0 -89
  320. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent.rb +0 -131
  321. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_alert.rb +0 -105
  322. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_capabilities.rb +0 -124
  323. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_details.rb +0 -118
  324. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_local_network.rb +0 -97
  325. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk.rb +0 -143
  326. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk_encryption.rb +0 -120
  327. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_extension_attribute.rb +0 -175
  328. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_font.rb +0 -93
  329. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general.rb +0 -244
  330. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general_update.rb +0 -124
  331. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_group.rb +0 -97
  332. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware.rb +0 -264
  333. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware_update.rb +0 -106
  334. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_ibeacon.rb +0 -81
  335. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory.rb +0 -276
  336. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_preferences.rb +0 -177
  337. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_settings.rb +0 -108
  338. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_file_vault.rb +0 -127
  339. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_file_vault_search_results.rb +0 -90
  340. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_recovery_lock_password_response.rb +0 -84
  341. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_search_results.rb +0 -90
  342. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_update_request.rb +0 -124
  343. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_licensed_software.rb +0 -88
  344. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_local_user_account.rb +0 -196
  345. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_location.rb +0 -93
  346. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_mdm_capability.rb +0 -88
  347. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system.rb +0 -148
  348. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system_update.rb +0 -82
  349. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_overview.rb +0 -194
  350. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_package_receipts.rb +0 -97
  351. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition.rb +0 -145
  352. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_encryption.rb +0 -94
  353. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_file_vault2_state.rb +0 -97
  354. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_plugin.rb +0 -93
  355. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results_v2.rb +0 -91
  356. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_v2.rb +0 -129
  357. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_v3.rb +0 -129
  358. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_printer.rb +0 -99
  359. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_purchase.rb +0 -158
  360. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_remote_management.rb +0 -95
  361. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_section.rb +0 -109
  362. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_security.rb +0 -193
  363. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_service.rb +0 -81
  364. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_software_update.rb +0 -93
  365. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_storage.rb +0 -90
  366. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_user_and_location.rb +0 -131
  367. data/lib/jamf/api/jamf_pro/oapi_schemas/computers_search_results.rb +0 -91
  368. data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_profile.rb +0 -101
  369. data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_search_results.rb +0 -90
  370. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_candidate_request.rb +0 -123
  371. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_response.rb +0 -123
  372. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_status_response.rb +0 -85
  373. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_update_request.rb +0 -109
  374. data/lib/jamf/api/jamf_pro/oapi_schemas/country.rb +0 -87
  375. data/lib/jamf/api/jamf_pro/oapi_schemas/country_codes.rb +0 -83
  376. data/lib/jamf/api/jamf_pro/oapi_schemas/create_path.rb +0 -97
  377. data/lib/jamf/api/jamf_pro/oapi_schemas/credentials.rb +0 -129
  378. data/lib/jamf/api/jamf_pro/oapi_schemas/csa_token.rb +0 -96
  379. data/lib/jamf/api/jamf_pro/oapi_schemas/current_account.rb +0 -160
  380. data/lib/jamf/api/jamf_pro/oapi_schemas/current_authorization.rb +0 -97
  381. data/lib/jamf/api/jamf_pro/oapi_schemas/dashboard_api_error.rb +0 -95
  382. data/lib/jamf/api/jamf_pro/oapi_schemas/dashboard_item.rb +0 -131
  383. data/lib/jamf/api/jamf_pro/oapi_schemas/dashboard_setup.rb +0 -89
  384. data/lib/jamf/api/jamf_pro/oapi_schemas/dashboard_setup_task.rb +0 -87
  385. data/lib/jamf/api/jamf_pro/oapi_schemas/data_roaming_setting.rb +0 -87
  386. data/lib/jamf/api/jamf_pro/oapi_schemas/database_password.rb +0 -86
  387. data/lib/jamf/api/jamf_pro/oapi_schemas/day_of_week.rb +0 -92
  388. data/lib/jamf/api/jamf_pro/oapi_schemas/declarative_management_command.rb +0 -82
  389. data/lib/jamf/api/jamf_pro/oapi_schemas/delete_user_command.rb +0 -93
  390. data/lib/jamf/api/jamf_pro/oapi_schemas/department.rb +0 -98
  391. data/lib/jamf/api/jamf_pro/oapi_schemas/departments_search_results.rb +0 -91
  392. data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task.rb +0 -129
  393. data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task_search_results.rb +0 -91
  394. data/lib/jamf/api/jamf_pro/oapi_schemas/details_v2.rb +0 -264
  395. data/lib/jamf/api/jamf_pro/oapi_schemas/device_communication_settings.rb +0 -128
  396. data/lib/jamf/api/jamf_pro/oapi_schemas/device_compliance_information.rb +0 -123
  397. data/lib/jamf/api/jamf_pro/oapi_schemas/device_information_command.rb +0 -83
  398. data/lib/jamf/api/jamf_pro/oapi_schemas/diagnostic_submission_setting.rb +0 -87
  399. data/lib/jamf/api/jamf_pro/oapi_schemas/dock_item.rb +0 -124
  400. data/lib/jamf/api/jamf_pro/oapi_schemas/download_url.rb +0 -83
  401. data/lib/jamf/api/jamf_pro/oapi_schemas/dss_declaration.rb +0 -111
  402. data/lib/jamf/api/jamf_pro/oapi_schemas/dss_declarations.rb +0 -82
  403. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook.rb +0 -152
  404. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_exclusions.rb +0 -137
  405. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_limitations.rb +0 -97
  406. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_scope.rb +0 -170
  407. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_search_results.rb +0 -90
  408. data/lib/jamf/api/jamf_pro/oapi_schemas/enable_lost_mode_command.rb +0 -93
  409. data/lib/jamf/api/jamf_pro/oapi_schemas/engage.rb +0 -88
  410. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_preview.rb +0 -141
  411. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_v2.rb +0 -132
  412. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization.rb +0 -106
  413. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_branding_settings.rb +0 -111
  414. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependencies.rb +0 -85
  415. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependency.rb +0 -93
  416. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_ldap_group_access.rb +0 -87
  417. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel.rb +0 -89
  418. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_ldap_auth.rb +0 -121
  419. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_list.rb +0 -83
  420. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_sso_auth.rb +0 -113
  421. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_text.rb +0 -112
  422. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results.rb +0 -90
  423. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results_v2.rb +0 -90
  424. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_v2.rb +0 -116
  425. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_method.rb +0 -97
  426. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_method_prestage.rb +0 -87
  427. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_process_text_object.rb +0 -346
  428. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_settings_v2.rb +0 -278
  429. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_settings_v3.rb +0 -246
  430. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_settings_v4.rb +0 -264
  431. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_sso_config.rb +0 -91
  432. data/lib/jamf/api/jamf_pro/oapi_schemas/erase_device_command.rb +0 -120
  433. data/lib/jamf/api/jamf_pro/oapi_schemas/export_field.rb +0 -91
  434. data/lib/jamf/api/jamf_pro/oapi_schemas/export_parameters.rb +0 -133
  435. data/lib/jamf/api/jamf_pro/oapi_schemas/extension_attribute_v2.rb +0 -116
  436. data/lib/jamf/api/jamf_pro/oapi_schemas/external_recipient.rb +0 -91
  437. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment.rb +0 -89
  438. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_delete.rb +0 -83
  439. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_v2.rb +0 -89
  440. data/lib/jamf/api/jamf_pro/oapi_schemas/file_data.rb +0 -117
  441. data/lib/jamf/api/jamf_pro/oapi_schemas/file_transfer_item.rb +0 -100
  442. data/lib/jamf/api/jamf_pro/oapi_schemas/font_path.rb +0 -90
  443. data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage_v2.rb +0 -104
  444. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization.rb +0 -87
  445. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel.rb +0 -89
  446. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_ldap_auth.rb +0 -93
  447. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_sso_auth.rb +0 -93
  448. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_text.rb +0 -93
  449. data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage.rb +0 -105
  450. data/lib/jamf/api/jamf_pro/oapi_schemas/group_mappings.rb +0 -138
  451. data/lib/jamf/api/jamf_pro/oapi_schemas/group_membership.rb +0 -94
  452. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search.rb +0 -106
  453. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_request.rb +0 -83
  454. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_response.rb +0 -89
  455. data/lib/jamf/api/jamf_pro/oapi_schemas/gsx_connection.rb +0 -127
  456. data/lib/jamf/api/jamf_pro/oapi_schemas/gsx_connection_update.rb +0 -114
  457. data/lib/jamf/api/jamf_pro/oapi_schemas/gsx_keystore.rb +0 -117
  458. data/lib/jamf/api/jamf_pro/oapi_schemas/gsx_test_response.rb +0 -96
  459. data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results.rb +0 -151
  460. data/lib/jamf/api/jamf_pro/oapi_schemas/href_response.rb +0 -194
  461. data/lib/jamf/api/jamf_pro/oapi_schemas/icon_response.rb +0 -91
  462. data/lib/jamf/api/jamf_pro/oapi_schemas/id_and_name_v2.rb +0 -88
  463. data/lib/jamf/api/jamf_pro/oapi_schemas/ids.rb +0 -101
  464. data/lib/jamf/api/jamf_pro/oapi_schemas/initialize_v1.rb +0 -133
  465. data/lib/jamf/api/jamf_pro/oapi_schemas/install_package.rb +0 -103
  466. data/lib/jamf/api/jamf_pro/oapi_schemas/internal_recipient.rb +0 -94
  467. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_information.rb +0 -113
  468. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_list_mobile_device.rb +0 -680
  469. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_list_mobile_device_search_results.rb +0 -90
  470. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_error.rb +0 -123
  471. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error.rb +0 -89
  472. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error_cause.rb +0 -105
  473. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_success.rb +0 -86
  474. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute.rb +0 -89
  475. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column.rb +0 -87
  476. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column_result.rb +0 -90
  477. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_invalid_csv_response.rb +0 -88
  478. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record.rb +0 -248
  479. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results.rb +0 -92
  480. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_configuration.rb +0 -129
  481. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_search_results.rb +0 -90
  482. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_application_response.rb +0 -95
  483. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_package_response.rb +0 -107
  484. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_information.rb +0 -124
  485. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_information_v2.rb +0 -124
  486. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_server_url.rb +0 -85
  487. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_version.rb +0 -82
  488. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_protect_plan.rb +0 -125
  489. data/lib/jamf/api/jamf_pro/oapi_schemas/jcds_properties.rb +0 -94
  490. data/lib/jamf/api/jamf_pro/oapi_schemas/language_code.rb +0 -94
  491. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_account_management_history.rb +0 -123
  492. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_account_management_history_response.rb +0 -90
  493. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_audit.rb +0 -90
  494. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_audit_v2.rb +0 -90
  495. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_history.rb +0 -114
  496. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_history_response.rb +0 -92
  497. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_password_and_audits.rb +0 -107
  498. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_password_and_audits_v2.rb +0 -107
  499. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_password_audits_results.rb +0 -90
  500. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_password_audits_results_v2.rb +0 -92
  501. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_password_response.rb +0 -84
  502. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_password_response_v2.rb +0 -86
  503. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_pending_rotation.rb +0 -88
  504. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_pending_rotation_response.rb +0 -90
  505. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_settings_request.rb +0 -100
  506. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_settings_request_v2.rb +0 -108
  507. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_settings_response.rb +0 -99
  508. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_settings_response_v2.rb +0 -106
  509. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_user.rb +0 -105
  510. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_user_password.rb +0 -90
  511. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_user_password_request.rb +0 -84
  512. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_user_password_request_v2.rb +0 -84
  513. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_user_password_response.rb +0 -83
  514. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_user_password_response_v2.rb +0 -83
  515. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_user_password_v2.rb +0 -90
  516. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_user_results.rb +0 -90
  517. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_user_results_v2.rb +0 -90
  518. data/lib/jamf/api/jamf_pro/oapi_schemas/laps_user_v2.rb +0 -106
  519. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_request.rb +0 -99
  520. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_response.rb +0 -101
  521. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_update.rb +0 -99
  522. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group.rb +0 -107
  523. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group_search_results.rb +0 -92
  524. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_server.rb +0 -94
  525. data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile.rb +0 -126
  526. data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile_search_results.rb +0 -89
  527. data/lib/jamf/api/jamf_pro/oapi_schemas/locale.rb +0 -88
  528. data/lib/jamf/api/jamf_pro/oapi_schemas/location_information.rb +0 -146
  529. data/lib/jamf/api/jamf_pro/oapi_schemas/location_information_v2.rb +0 -146
  530. data/lib/jamf/api/jamf_pro/oapi_schemas/location_v2.rb +0 -124
  531. data/lib/jamf/api/jamf_pro/oapi_schemas/log_out_user_command.rb +0 -77
  532. data/lib/jamf/api/jamf_pro/oapi_schemas/login_content.rb +0 -107
  533. data/lib/jamf/api/jamf_pro/oapi_schemas/login_content_put.rb +0 -101
  534. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_configuration.rb +0 -118
  535. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_search_results.rb +0 -90
  536. data/lib/jamf/api/jamf_pro/oapi_schemas/managed_software_update_plan.rb +0 -171
  537. data/lib/jamf/api/jamf_pro/oapi_schemas/managed_software_update_plan_group_post.rb +0 -99
  538. data/lib/jamf/api/jamf_pro/oapi_schemas/managed_software_update_plan_post.rb +0 -98
  539. data/lib/jamf/api/jamf_pro/oapi_schemas/managed_software_update_plan_post_response.rb +0 -100
  540. data/lib/jamf/api/jamf_pro/oapi_schemas/managed_software_update_plan_toggle.rb +0 -108
  541. data/lib/jamf/api/jamf_pro/oapi_schemas/managed_software_update_plan_toggle_status.rb +0 -169
  542. data/lib/jamf/api/jamf_pro/oapi_schemas/managed_software_update_plan_toggle_status_wrapper.rb +0 -91
  543. data/lib/jamf/api/jamf_pro/oapi_schemas/managed_software_update_plans.rb +0 -102
  544. data/lib/jamf/api/jamf_pro/oapi_schemas/managed_software_update_status.rb +0 -174
  545. data/lib/jamf/api/jamf_pro/oapi_schemas/managed_software_update_statuses.rb +0 -102
  546. data/lib/jamf/api/jamf_pro/oapi_schemas/markdown.rb +0 -84
  547. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_client_type.rb +0 -90
  548. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command.rb +0 -109
  549. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_base.rb +0 -82
  550. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_client.rb +0 -87
  551. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_client_request.rb +0 -81
  552. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_request.rb +0 -91
  553. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_results.rb +0 -89
  554. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_state.rb +0 -89
  555. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_type.rb +0 -98
  556. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_mappings.rb +0 -84
  557. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_request.rb +0 -90
  558. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_response.rb +0 -88
  559. data/lib/jamf/api/jamf_pro/oapi_schemas/memcached_endpoints.rb +0 -114
  560. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_application.rb +0 -100
  561. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_application_inventory_detail.rb +0 -123
  562. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_attachment_v2.rb +0 -90
  563. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate.rb +0 -94
  564. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate_v2.rb +0 -147
  565. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_get_v2.rb +0 -83
  566. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_v2.rb +0 -295
  567. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_ebook.rb +0 -93
  568. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_ebook_inventory_detail.rb +0 -105
  569. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_extension_attribute.rb +0 -125
  570. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_extension_attribute_results.rb +0 -83
  571. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_general.rb +0 -216
  572. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_group.rb +0 -96
  573. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_hardware.rb +0 -160
  574. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_inventory.rb +0 -136
  575. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_inventory_search_results.rb +0 -91
  576. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_ios_general.rb +0 -191
  577. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_ios_inventory.rb +0 -134
  578. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_lost_mode_location.rb +0 -118
  579. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_network.rb +0 -180
  580. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage.rb +0 -136
  581. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name.rb +0 -94
  582. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name_v2.rb +0 -94
  583. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names.rb +0 -118
  584. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names_v2.rb +0 -118
  585. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results.rb +0 -90
  586. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_profile.rb +0 -112
  587. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_provisioning_profiles.rb +0 -95
  588. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_purchasing.rb +0 -157
  589. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_response.rb +0 -74
  590. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_results_v2.rb +0 -90
  591. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_section.rb +0 -100
  592. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_security.rb +0 -178
  593. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_service_subscriptions.rb +0 -173
  594. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_shared_user.rb +0 -93
  595. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_tv_os_general.rb +0 -93
  596. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_tv_os_inventory.rb +0 -94
  597. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_user_and_location.rb +0 -142
  598. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_user_profile.rb +0 -118
  599. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_v2.rb +0 -160
  600. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_watch_os_general.rb +0 -112
  601. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_watch_os_inventory.rb +0 -94
  602. data/lib/jamf/api/jamf_pro/oapi_schemas/network_v2.rb +0 -179
  603. data/lib/jamf/api/jamf_pro/oapi_schemas/notification.rb +0 -96
  604. data/lib/jamf/api/jamf_pro/oapi_schemas/notification_type.rb +0 -147
  605. data/lib/jamf/api/jamf_pro/oapi_schemas/notification_v1.rb +0 -96
  606. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history.rb +0 -141
  607. data/lib/jamf/api/jamf_pro/oapi_schemas/onboarding_configuration.rb +0 -101
  608. data/lib/jamf/api/jamf_pro/oapi_schemas/onboarding_eligible_item.rb +0 -104
  609. data/lib/jamf/api/jamf_pro/oapi_schemas/onboarding_eligible_items_search_result.rb +0 -94
  610. data/lib/jamf/api/jamf_pro/oapi_schemas/onboarding_item.rb +0 -140
  611. data/lib/jamf/api/jamf_pro/oapi_schemas/parent_app.rb +0 -131
  612. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policies.rb +0 -89
  613. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_detail.rb +0 -190
  614. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_details.rb +0 -89
  615. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_list_view.rb +0 -142
  616. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log_detail.rb +0 -102
  617. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log_detail_action.rb +0 -94
  618. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log_eligible_retry_count.rb +0 -82
  619. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log_retry.rb +0 -83
  620. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log_v2.rb +0 -133
  621. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_logs.rb +0 -89
  622. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_v2_on_dashboard.rb +0 -82
  623. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_configuration.rb +0 -94
  624. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_configuration_base.rb +0 -163
  625. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_configuration_definition_kill_app.rb +0 -81
  626. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_configuration_dependencies.rb +0 -89
  627. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_configuration_dependency.rb +0 -87
  628. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_configuration_extension_attributes.rb +0 -89
  629. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_configuration_patch.rb +0 -126
  630. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_definition.rb +0 -118
  631. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_definitions.rb +0 -89
  632. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_extension_attributes.rb +0 -101
  633. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_packages.rb +0 -94
  634. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_report.rb +0 -130
  635. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_software_title_report_search_result.rb +0 -89
  636. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_summary.rb +0 -125
  637. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_summary_version.rb +0 -94
  638. data/lib/jamf/api/jamf_pro/oapi_schemas/personal_hotspot_setting.rb +0 -87
  639. data/lib/jamf/api/jamf_pro/oapi_schemas/plan_configuration_post.rb +0 -133
  640. data/lib/jamf/api/jamf_pro/oapi_schemas/plan_device.rb +0 -105
  641. data/lib/jamf/api/jamf_pro/oapi_schemas/plan_device_post.rb +0 -97
  642. data/lib/jamf/api/jamf_pro/oapi_schemas/plan_device_response.rb +0 -96
  643. data/lib/jamf/api/jamf_pro/oapi_schemas/plan_group_post.rb +0 -96
  644. data/lib/jamf/api/jamf_pro/oapi_schemas/plan_search_results.rb +0 -89
  645. data/lib/jamf/api/jamf_pro/oapi_schemas/plan_status.rb +0 -126
  646. data/lib/jamf/api/jamf_pro/oapi_schemas/plugin_path.rb +0 -90
  647. data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties.rb +0 -91
  648. data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties_v1.rb +0 -91
  649. data/lib/jamf/api/jamf_pro/oapi_schemas/post_computer_prestage_v2.rb +0 -85
  650. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependencies.rb +0 -85
  651. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependency.rb +0 -93
  652. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment.rb +0 -95
  653. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment_v2.rb +0 -95
  654. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information.rb +0 -174
  655. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information_v2.rb +0 -174
  656. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope.rb +0 -84
  657. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment.rb +0 -93
  658. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment_v2.rb +0 -94
  659. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response.rb +0 -109
  660. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_update.rb +0 -113
  661. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status.rb +0 -98
  662. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status_v2.rb +0 -98
  663. data/lib/jamf/api/jamf_pro/oapi_schemas/process_texts_search_results.rb +0 -92
  664. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_registration_request.rb +0 -100
  665. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_settings_response.rb +0 -141
  666. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_updatable_settings_request.rb +0 -83
  667. data/lib/jamf/api/jamf_pro/oapi_schemas/purchasing_v2.rb +0 -153
  668. data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage_v2.rb +0 -91
  669. data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage.rb +0 -82
  670. data/lib/jamf/api/jamf_pro/oapi_schemas/recalculation_results.rb +0 -92
  671. data/lib/jamf/api/jamf_pro/oapi_schemas/reenrollment.rb +0 -117
  672. data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_response.rb +0 -107
  673. data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_search_results.rb +0 -90
  674. data/lib/jamf/api/jamf_pro/oapi_schemas/renew_mdm_profile_response.rb +0 -82
  675. data/lib/jamf/api/jamf_pro/oapi_schemas/restart_device_command.rb +0 -95
  676. data/lib/jamf/api/jamf_pro/oapi_schemas/return_to_service_configuration.rb +0 -100
  677. data/lib/jamf/api/jamf_pro/oapi_schemas/return_to_service_configuration_request.rb +0 -92
  678. data/lib/jamf/api/jamf_pro/oapi_schemas/return_to_service_configuration_search_results.rb +0 -91
  679. data/lib/jamf/api/jamf_pro/oapi_schemas/safelisted_app.rb +0 -89
  680. data/lib/jamf/api/jamf_pro/oapi_schemas/scheduler_job.rb +0 -89
  681. data/lib/jamf/api/jamf_pro/oapi_schemas/scheduler_jobs.rb +0 -83
  682. data/lib/jamf/api/jamf_pro/oapi_schemas/scheduler_summary.rb +0 -100
  683. data/lib/jamf/api/jamf_pro/oapi_schemas/scheduler_trigger.rb +0 -95
  684. data/lib/jamf/api/jamf_pro/oapi_schemas/script.rb +0 -193
  685. data/lib/jamf/api/jamf_pro/oapi_schemas/scripts_search_results.rb +0 -91
  686. data/lib/jamf/api/jamf_pro/oapi_schemas/security_v2.rb +0 -130
  687. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_install_settings.rb +0 -92
  688. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_interaction_settings.rb +0 -122
  689. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_login_settings.rb +0 -113
  690. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_settings.rb +0 -100
  691. data/lib/jamf/api/jamf_pro/oapi_schemas/session.rb +0 -82
  692. data/lib/jamf/api/jamf_pro/oapi_schemas/session_candidate_request.rb +0 -108
  693. data/lib/jamf/api/jamf_pro/oapi_schemas/session_details.rb +0 -175
  694. data/lib/jamf/api/jamf_pro/oapi_schemas/session_details_search_results.rb +0 -90
  695. data/lib/jamf/api/jamf_pro/oapi_schemas/session_history_item.rb +0 -145
  696. data/lib/jamf/api/jamf_pro/oapi_schemas/session_history_item_details.rb +0 -82
  697. data/lib/jamf/api/jamf_pro/oapi_schemas/session_history_item_with_details.rb +0 -153
  698. data/lib/jamf/api/jamf_pro/oapi_schemas/session_history_search_results.rb +0 -91
  699. data/lib/jamf/api/jamf_pro/oapi_schemas/session_status.rb +0 -98
  700. data/lib/jamf/api/jamf_pro/oapi_schemas/set_auto_admin_password_command.rb +0 -92
  701. data/lib/jamf/api/jamf_pro/oapi_schemas/set_recovery_lock_command.rb +0 -83
  702. data/lib/jamf/api/jamf_pro/oapi_schemas/settings_command.rb +0 -166
  703. data/lib/jamf/api/jamf_pro/oapi_schemas/shared_device_compliance_feature_toggle.rb +0 -83
  704. data/lib/jamf/api/jamf_pro/oapi_schemas/shared_device_configuration.rb +0 -87
  705. data/lib/jamf/api/jamf_pro/oapi_schemas/shut_down_device_command.rb +0 -77
  706. data/lib/jamf/api/jamf_pro/oapi_schemas/signature.rb +0 -93
  707. data/lib/jamf/api/jamf_pro/oapi_schemas/site.rb +0 -90
  708. data/lib/jamf/api/jamf_pro/oapi_schemas/site_object.rb +0 -150
  709. data/lib/jamf/api/jamf_pro/oapi_schemas/smart_search_criterion.rb +0 -118
  710. data/lib/jamf/api/jamf_pro/oapi_schemas/smtp_basic_credentials.rb +0 -91
  711. data/lib/jamf/api/jamf_pro/oapi_schemas/smtp_connection_settings.rb +0 -113
  712. data/lib/jamf/api/jamf_pro/oapi_schemas/smtp_graph_api_credentials.rb +0 -98
  713. data/lib/jamf/api/jamf_pro/oapi_schemas/smtp_sender_settings.rb +0 -88
  714. data/lib/jamf/api/jamf_pro/oapi_schemas/smtp_server.rb +0 -158
  715. data/lib/jamf/api/jamf_pro/oapi_schemas/smtp_server_test.rb +0 -83
  716. data/lib/jamf/api/jamf_pro/oapi_schemas/smtp_server_v2.rb +0 -127
  717. data/lib/jamf/api/jamf_pro/oapi_schemas/software_title_configuration_on_dashboard.rb +0 -82
  718. data/lib/jamf/api/jamf_pro/oapi_schemas/software_update_settings.rb +0 -88
  719. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_failover_data.rb +0 -93
  720. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore.rb +0 -128
  721. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_cert_parse_response.rb +0 -130
  722. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_details.rb +0 -107
  723. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_parse.rb +0 -103
  724. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response.rb +0 -120
  725. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response_with_details.rb +0 -93
  726. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_with_details.rb +0 -93
  727. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_metadata_url.rb +0 -85
  728. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_settings_v1.rb +0 -253
  729. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_settings_v2.rb +0 -253
  730. data/lib/jamf/api/jamf_pro/oapi_schemas/startup_status.rb +0 -197
  731. data/lib/jamf/api/jamf_pro/oapi_schemas/static_group.rb +0 -94
  732. data/lib/jamf/api/jamf_pro/oapi_schemas/static_group_assignment.rb +0 -105
  733. data/lib/jamf/api/jamf_pro/oapi_schemas/static_group_search_results.rb +0 -90
  734. data/lib/jamf/api/jamf_pro/oapi_schemas/static_group_summary.rb +0 -101
  735. data/lib/jamf/api/jamf_pro/oapi_schemas/static_user_group.rb +0 -91
  736. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity.rb +0 -107
  737. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_certificate_upload.rb +0 -100
  738. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_create.rb +0 -91
  739. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_search_results.rb +0 -90
  740. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_update.rb +0 -83
  741. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_features.rb +0 -105
  742. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_request.rb +0 -108
  743. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_response.rb +0 -122
  744. data/lib/jamf/api/jamf_pro/oapi_schemas/time_frame.rb +0 -87
  745. data/lib/jamf/api/jamf_pro/oapi_schemas/time_zone.rb +0 -107
  746. data/lib/jamf/api/jamf_pro/oapi_schemas/tv_os_details.rb +0 -141
  747. data/lib/jamf/api/jamf_pro/oapi_schemas/udids.rb +0 -83
  748. data/lib/jamf/api/jamf_pro/oapi_schemas/update_ios_v2.rb +0 -81
  749. data/lib/jamf/api/jamf_pro/oapi_schemas/update_mobile_device_v2.rb +0 -137
  750. data/lib/jamf/api/jamf_pro/oapi_schemas/update_tv_os.rb +0 -88
  751. data/lib/jamf/api/jamf_pro/oapi_schemas/user_mappings.rb +0 -193
  752. data/lib/jamf/api/jamf_pro/oapi_schemas/user_preferences_settings.rb +0 -100
  753. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_attributes.rb +0 -117
  754. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search.rb +0 -112
  755. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_request.rb +0 -83
  756. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_response.rb +0 -89
  757. data/lib/jamf/api/jamf_pro/oapi_schemas/v1_site.rb +0 -91
  758. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_ca_record.rb +0 -148
  759. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record.rb +0 -87
  760. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record_search_results.rb +0 -90
  761. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_service_status.rb +0 -83
  762. data/lib/jamf/api/jamf_pro/oapi_schemas/verbose_package_deployment_response.rb +0 -90
  763. data/lib/jamf/api/jamf_pro/oapi_schemas/voice_roaming_setting.rb +0 -87
  764. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_content.rb +0 -154
  765. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_content_list.rb +0 -89
  766. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location.rb +0 -86
  767. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_list_view.rb +0 -184
  768. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_patch.rb +0 -111
  769. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_post.rb +0 -114
  770. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_locations.rb +0 -89
  771. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription.rb +0 -86
  772. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription_base.rb +0 -127
  773. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscriptions.rb +0 -89
  774. data/lib/jamf/api/jamf_pro/oapi_schemas/watch_os_details_v2.rb +0 -201
  775. data/lib/jamf/api/jamf_pro/oapi_schemas/web_link.rb +0 -87
@@ -0,0 +1,724 @@
1
+ # Copyright 2025 Pixar
2
+
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "Apache License")
5
+ # with the following modification; you may not use this file except in
6
+ # compliance with the Apache License and the following modification to it:
7
+ # Section 6. Trademarks. is deleted and replaced with:
8
+ #
9
+ # 6. Trademarks. This License does not grant permission to use the trade
10
+ # names, trademarks, service marks, or product names of the Licensor
11
+ # and its affiliates, except as required to comply with Section 4(c) of
12
+ # the License and to reproduce the content of the NOTICE file.
13
+ #
14
+ # You may obtain a copy of the Apache License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the Apache License with the above modification is
20
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
+ # KIND, either express or implied. See the Apache License for the specific
22
+ # language governing permissions and limitations under the Apache License.
23
+ #
24
+ #
25
+
26
+ # frozen_string_literal: true
27
+
28
+ # The main Module
29
+ module Jamf
30
+
31
+ # Classes
32
+ #####################################
33
+
34
+ # A Package in the Jamf Pro API
35
+ #
36
+ #################################
37
+ class JPackage < Jamf::OAPISchemas::Package
38
+
39
+ # Mix-Ins
40
+ #####################################
41
+
42
+ include Jamf::CollectionResource
43
+ extend Jamf::Filterable
44
+ include Jamf::ChangeLog
45
+
46
+ # Constants
47
+ #####################################
48
+
49
+ ########### RELATED OAPI OBJECTS
50
+ # These objects should be OAPIObjects, NOT subclasses of them and
51
+ # not Collection or Singleton resources.
52
+
53
+ # The OAPI object class we get back from a 'list' query to get the
54
+ # whole collection, or a subset of it. It contains a :results key
55
+ # which is an array of data for objects of the parent class.
56
+ SEARCH_RESULT_OBJECT = Jamf::OAPISchemas::PackagesSearchResults
57
+
58
+ # The OAPI object class we send with a POST request to make a new member of
59
+ # the collection in Jamf. This is usually the same as the parent class.
60
+ POST_OBJECT = Jamf::OAPISchemas::Package
61
+
62
+ # The OAPI object class we send with a PUT request to change an object in
63
+ # Jamf by specifying all its values. Most updates happen this way,
64
+ # and this is usually the same as the parent class
65
+ PUT_OBJECT = Jamf::OAPISchemas::Package
66
+
67
+ # The OAPI object we send with a PATCH request to change an object in
68
+ # Jamf by replacing only some of its values. This is never the same as the
69
+ # parent class, and is usually used when most of the data about an
70
+ # object cannot be changed via the API.
71
+ # PATCH_OBJECT = Jamf::OAPISchemas::Building
72
+
73
+ ############# API PATHS
74
+ # TODO: See if these paths can be auto-generated from the
75
+ # OAPI schema and baked into the parent class
76
+
77
+ # The path for GETting the list of all objects in the collection, possibly
78
+ # filtered, sorted, and/or paged
79
+ # REQUIRED for all collection resources
80
+ #
81
+ # GET_PATH, POST_PATH, PUT_PATH, PATCH_PATH, and DELETE_PATH are automatically
82
+ # assumed from the LIST_PATH if they follow the standards:
83
+ # - GET_PATH = "#{LIST_PATH}/id"
84
+ # - fetch an object from the collection
85
+ # - POST_PATH = LIST_PATH
86
+ # - create a new object in the collection
87
+ # - PUT_PATH = "#{LIST_PATH}/id"
88
+ # - update an object passing all its values back.
89
+ # Most objects use this or PATCH but not both
90
+ # - PATCH_PATH = "#{LIST_PATH}/id"
91
+ # - update an object passing some of its values back
92
+ # Most objects use this or PUT but not both
93
+ # - DELETE_PATH = "#{LIST_PATH}/id"
94
+ # - delete an object from the collection
95
+ #
96
+ # If those paths differ from the standards, the constants must be defined
97
+ # here
98
+ #
99
+ LIST_PATH = 'v1/packages'
100
+
101
+ # Identifiers not marked in the superclass's OAPI_PROPERTIES constant
102
+ # which usually only identifies ':id'
103
+ ALT_IDENTIFIERS = %i[packageName fileName].freeze
104
+
105
+ # Must define this when extending Filterable
106
+ FILTER_KEYS = %i[
107
+ id fileName packageName categoryId info notes manifestFileName cloudTransferStatus
108
+ ].freeze
109
+
110
+ # the suffix for the REST resource for uploading a package
111
+ UPLOAD_ENDPOINT = 'upload'
112
+
113
+ # Defaults for some required values
114
+ ############
115
+
116
+ DEFAULT_CATEGORY_ID = '-1'
117
+ DEFAULT_PRIORITY = 10
118
+ DEFAULT_FUT = false
119
+ DEFAULT_REBOOT_REQUIRED = false
120
+ DEFAULT_OS_INSTALL = false
121
+ DEFAULT_SUPPRESS_UPDATES = false
122
+ DEFAULT_SUPPRESS_FROM_DOCK = false
123
+ DEFAULT_SUPPRESS_EULA = false
124
+ DEFAULT_SUPPRESS_REGISTRATION = false
125
+
126
+ # The hashType value in the API or manifests for md5
127
+ CHECKSUM_HASH_TYPE_MD5 = 'MD5'
128
+
129
+ # The hashType value in the API for sha256 - IF it exists
130
+ CHECKSUM_HASH_TYPE_SHA256 = 'SHA_256'
131
+
132
+ # The hashType value in MDM deploy manifests for sha256
133
+ CHECKSUM_HASH_TYPE_SHA256_MDM_DEPLOY = 'SHA256'
134
+
135
+ # The hashType value in the API for sha512
136
+ CHECKSUM_HASH_TYPE_SHA512 = 'SHA_512'
137
+
138
+ # Mapping of the hash types to the maching Digest modules
139
+ # See {.calculate_checksum}
140
+ CHECKSUM_HASH_TYPES = {
141
+ CHECKSUM_HASH_TYPE_MD5 => Digest::MD5,
142
+ CHECKSUM_HASH_TYPE_SHA256 => Digest::SHA256,
143
+ CHECKSUM_HASH_TYPE_SHA512 => Digest::SHA512
144
+ }.freeze
145
+
146
+ DEFAULT_CHECKSUM_HASH_TYPE = CHECKSUM_HASH_TYPE_SHA512
147
+
148
+ # if no manifest filename is provided, this suffix will be appended to the
149
+ # fileName, with spaces converted to dashes.
150
+ MANIFEST_FILENAME_DEFAULT_SUFFIX = '-manifest.plist'
151
+
152
+ # Not doing chunking by default in generated manifests
153
+ MANIFEST_CHUNK_SIZE = 1024 * 1024 * 10 # 10MB
154
+
155
+ MANIFEST_PLIST_TEMPLATE = {
156
+ items: [
157
+ {
158
+ assets: [
159
+ {
160
+ 'kind' => 'software-package',
161
+ 'sha256s' => [],
162
+ 'url' => 'url-goes-here'
163
+ } # end hash
164
+ ], # end assets array,
165
+ metadata: {
166
+ 'kind' => 'software',
167
+ 'bundle-identifier' => 'com.example.pkg',
168
+ 'bundle-version' => '0',
169
+ 'title' => 'title',
170
+ 'sizeInBytes' => 1
171
+ } # end metadata
172
+ } # end hash
173
+ ] # end items array
174
+ }.freeze
175
+
176
+ # The endpoint for deploying a package via MDM
177
+ # see https://developer.jamf.com/jamf-pro/reference/post_v1-deploy-package
178
+ DEPLOYMENT_ENDPOINT = '/v1/deploy-package?verbose=true'
179
+
180
+ # Class Methods
181
+ #####################################
182
+
183
+ # Given a file path, and hash type, generate the checksum for an arbitrary
184
+ # file.
185
+ #
186
+ # @param filepath [String, Pathname] The file to checksum
187
+ #
188
+ # @param type [String ] One of the keys of CHECKSUM_HASH_TYPES, either
189
+ # CHECKSUM_HASH_TYPE_MD5 or CHECKSUM_HASH_TYPE_SHA512
190
+ #
191
+ # @return [String] The checksum of the file
192
+ #
193
+ def self.calculate_checksum(filepath, type = DEFAULT_CHECKSUM_HASH_TYPE)
194
+ raise ArgumentError, 'Unknown checksum hash type' unless CHECKSUM_HASH_TYPES.key? type
195
+
196
+ CHECKSUM_HASH_TYPES[type].file(filepath).hexdigest
197
+ end
198
+
199
+ # Setter for a default base URL for package manifests.
200
+ # Manifests are required for packages deployed via enrollment prestages
201
+ # or via the InstallEnterpriseApplication MDM command.
202
+ #
203
+ # When generating a manifest for a package, you must provide a URL
204
+ # from which the package can be downloaded. This is usually from your
205
+ # Cloud Distribution Point, but can be some other https web server.
206
+ #
207
+ # If Jamf.config.package_manifest_base_url is defined (see {Jamf::Configuration})
208
+ # then that will be used as the default. Otherwise, or if you wish to override
209
+ # the config, the value set here will be used as the default for generating manifests
210
+ # for all Jamf::JPackage objects in this ruby session.
211
+ #
212
+ # Setting this in the config or here means you don't have to provide a base URL
213
+ # each time when calling #generate_manifest, however you can still provide one
214
+ # at that time to override any default.
215
+ #
216
+ # Normally, the package's fileName is appended to this URL to generate the full
217
+ # download URL. E.g. for a package with a fileName 'my-app.pkg', with the base URL of
218
+ # 'https://my-cdp.myorg.com', the download URL in the manifest would be
219
+ # 'https://my-cdp.myorg.com/my-app.pkg'
220
+ #
221
+ # See {#generate_manifest} for more info.
222
+ #
223
+ # @param url[String] the default base URL for building manifests, overrides any
224
+ # value in the config.
225
+ #
226
+ # @return [void]
227
+ ############
228
+ def self.default_manifest_base_url=(url)
229
+ @default_manifest_url = url.to_s
230
+ end
231
+
232
+ # Getter for the default base URL for package manifests.
233
+ # This will be the one set for the class for this ruby session, or the one set in the
234
+ # Jamf.config.package_manifest_base_url
235
+ # seealso {JPackage.default_manifest_base_url=}
236
+ #
237
+ # @return [String] the default base URL for building manifests
238
+ ############
239
+ def self.default_manifest_base_url
240
+ @default_manifest_url || Jamf.config.package_manifest_base_url
241
+ end
242
+
243
+ # Attributes
244
+ #####################################
245
+
246
+ # Checksums
247
+ # Packages in Jamf Pro can have a checksum in either MD5 or SHA512, or possibly
248
+ # SHA256 - none of our 1500 pkgs have 256, but given the existence of the sha256
249
+ # attribute in the API data, I'm assuming it existed at some point, and behaves like
250
+ # md5 (read on)
251
+ #
252
+ # In all cases, the hashType indicates the type of checksum, as a string, one of
253
+ # 'MD5', 'SHA_256', or 'SHA_512'.
254
+ #
255
+ # In the case of md5 and sha256, the actually digest value (the checksum) is in the
256
+ # 'md5' or 'sha256' attribute. In the case of sha512, the digest is in the 'hashValue'
257
+ # attribute.
258
+ # In anycase, the digest value will be stored in the checksum attribute of this class
259
+ #
260
+ # @return [String] the checksum of the package, either an MD5, SHA256, or SHA512
261
+ # digest of the package file.
262
+ attr_reader :checksum
263
+
264
+ # The response body of the last upload of this package, with a timestamp added.
265
+ # Looks like:
266
+ # {
267
+ # :id=>"10392",
268
+ # :href=>"https://casper-int.pixar.com:8443/api/v1/packages/10392/upload/10392"
269
+ # :time=>2025-09-01 12:00:00 -0700
270
+ # }
271
+ # see #upload
272
+ # @return [Hash] the response body of the last upload of this package
273
+ attr_reader :upload_response
274
+
275
+ # The response body of the last mdm-deploy of this package. see #deploy_via_mdm
276
+ #
277
+ # {
278
+ # "queuedCommands": [
279
+ # {
280
+ # "device": 1,
281
+ # "commandUuid": "aaaaaaaa-3f1e-4b3a-a5b3-ca0cd7430937"
282
+ # }
283
+ # ],
284
+ # "errors": [
285
+ # {
286
+ # "device": 2,
287
+ # "group": 3,
288
+ # "reason": "Device does not support the InstallEnterpriseApplication command"
289
+ # }
290
+ # ]
291
+ # }
292
+ #
293
+ # @return [Hash] the response body of the last mdm-deploy of this package
294
+ attr_reader :deploy_response
295
+
296
+ # Constructor
297
+ #####################################
298
+
299
+ # Make an instance. Data comes from the API
300
+ #
301
+ # @param data[Hash] the data for constructing a new object.
302
+ ##############################
303
+ def initialize(**data)
304
+ super
305
+
306
+ # set defaults for some required values
307
+ #
308
+ # check for explicit nils, since if these are boolean false
309
+ # we don't want to change them.
310
+
311
+ self.categoryId = DEFAULT_CATEGORY_ID if categoryId.nil?
312
+ self.priority = DEFAULT_PRIORITY if priority.nil?
313
+ self.fillUserTemplate = DEFAULT_FUT if fillUserTemplate.nil?
314
+ self.rebootRequired = DEFAULT_REBOOT_REQUIRED if rebootRequired.nil?
315
+ self.osInstall = DEFAULT_OS_INSTALL if osInstall.nil?
316
+ self.suppressUpdates = DEFAULT_SUPPRESS_UPDATES if suppressUpdates.nil?
317
+ self.suppressFromDock = DEFAULT_SUPPRESS_FROM_DOCK if suppressFromDock.nil?
318
+ self.suppressEula = DEFAULT_SUPPRESS_EULA if suppressEula.nil?
319
+ self.suppressRegistration = DEFAULT_SUPPRESS_REGISTRATION if suppressRegistration.nil?
320
+
321
+ @checksum =
322
+ case hashType
323
+ when CHECKSUM_HASH_TYPE_MD5
324
+ md5 || hashValue
325
+ when CHECKSUM_HASH_TYPE_SHA256
326
+ sha256 || hashValue
327
+ when CHECKSUM_HASH_TYPE_SHA512
328
+ hashValue
329
+ end
330
+ end # init
331
+
332
+ # Public Instance Methods
333
+ #####################################
334
+
335
+ # @return [Pathname] the local receipt when this pkg is installed by a policy
336
+ def receipt
337
+ # the receipt is the filename with any .zip extension removed.
338
+ fileName ? (Jamf::Client::RECEIPTS_FOLDER + fileName.to_s.sub(/.zip$/, '')) : nil
339
+ end
340
+
341
+ # Recalculate the checksum of the package file from a given filepath, and update the
342
+ # object's checksum and hashValue attributes.
343
+ #
344
+ # You will need to call #save on the object to save the new checksum to the server.
345
+ #
346
+ # New checksums are always SHA512
347
+ #
348
+ # @param filepath [String, Pathname] the path to a local copy of the package file
349
+ #
350
+ # @return [String] The new checksum of the package file
351
+ ##############################
352
+ def recalculate_checksum(filepath)
353
+ # update the checksum
354
+ @checksum = self.class.calculate_checksum(filepath, DEFAULT_CHECKSUM_HASH_TYPE)
355
+ self.hashType = DEFAULT_CHECKSUM_HASH_TYPE
356
+ self.sha256 = nil
357
+ self.md5 = nil
358
+ self.hashValue = @checksum
359
+ end
360
+
361
+ # @param filepath [String, Pathname] the path to a local copy of the package file
362
+ # @return [Boolean] Does the checksum of the file match the checksum in the object?
363
+ # nil if there is no checksum in the object.
364
+ ##############################
365
+ def checksum_valid?(filepath)
366
+ return unless checksum
367
+
368
+ self.class.calculate_checksum(filepath, hashType) == checksum
369
+ end
370
+
371
+ # @return [String] The manifest file name or a default if none is set
372
+ ##############################
373
+ def default_manifestFileName
374
+ "#{fileName.gsub(' ', '-')}#{MANIFEST_FILENAME_DEFAULT_SUFFIX}"
375
+ end
376
+
377
+ # Set the manifest from a local file or XML plist string.
378
+ # If from a file, update the manifestFileName attribute to use the filename
379
+ #
380
+ # To generate a basic manifest plist for this package, use #generate_manifest
381
+ #
382
+ # When using this method, if you want to be able to deploy the pkg using
383
+ # #deploy_via_mdm, the manifest MUST include a metadata dictionary
384
+ # with at least the following keys
385
+ # - 'bundle-identifier' that matches the bundle identifier of the pkg
386
+ # - 'bundle-version' = the version of the pkg
387
+ # - 'kind' = 'software'
388
+ # - 'title' = the name of the pkg or what it installs
389
+ # - 'sizeInBytes' = the size of the pkg in bytes
390
+ # optional keys include bundle-version, and subtitle
391
+ #
392
+ # @param manifest [String, Pathname] the manifest plist data or path to a local file
393
+ #
394
+ # @return [void]
395
+ ##############################
396
+ def manifest=(manifest)
397
+ if manifest.is_a? Pathname
398
+ @manifest = manifest.read
399
+ self.manifestFileName = manifest.basename.to_s
400
+ else
401
+ @manifest = manifest
402
+ end
403
+ end
404
+
405
+ # return the manifest as a ruby hash converted from the plist
406
+ # IMPORTANT: all hash keys are strings, not symbols
407
+ #
408
+ # @return [Hash] the manifest as a ruby hash
409
+ ##############################
410
+ def manifest_hash
411
+ return if manifest.to_s.empty?
412
+
413
+ CFPropertyList.native_types(CFPropertyList::List.new(data: manifest).value)
414
+ end
415
+
416
+ # Generate a manifest plist (xml) for this package, update the #manifest attribute,
417
+ # and assign an appropriate #manifestFileName.
418
+ #
419
+ # Afterwards, you will need to call #save on the object to save the new values to
420
+ # the server.
421
+ #
422
+ # The download URL used in the manifest will be the default for the class
423
+ # (if you have set one) or the URL passed in, with the fileName appended. The
424
+ # class default may come from the ruby-jss config, or be set directly on the class.
425
+ #
426
+ # Unless set explicitly afterward using #manifestFileName= the manifest filename
427
+ # will be the fileName of the Package object, with spaces converted to dashes,
428
+ # followed by MANIFEST_FILENAME_DEFAULT_SUFFIX.
429
+ # e.g. my-app.pkg-manifest.plist
430
+ #
431
+ # You can also generate the manifest when uploading the pkg file by providing
432
+ # appropriate options to #upload,
433
+ # in which case the new values will be saved to the Jamf Pro server automatically.
434
+ #
435
+ # @param filepath [String, Pathname] the path to a local copy of the package file for which
436
+ # this manifest is being generated. This MUST match the one uploaded to the server, as it is
437
+ # used to calculate the checksums in the manifest.
438
+ #
439
+ # @param opts [Hash] a hash of keyword arguments
440
+ #
441
+ # @options opts url [String] the URL where the package will be downloaded from,
442
+ # defaults to the class default
443
+ #
444
+ # @option opts append_filename_to_url [Boolean] should the fileName be appended to the URL,
445
+ # defaults to true.
446
+ # If false, the url given must be the full URL to download the individual package file.
447
+ #
448
+ # @option opts chunk_size [Integer] the size of each chunk in the manifest, in bytes.
449
+ # If omitted, the whole file will be checksummed at once and downloads will not be chunked.
450
+ # A common chunk size is 10MB, or 1024 * 1024 * 10.
451
+ # NOTE: Not all distribution points support chunked downloads.
452
+ #
453
+ # @option opts bundle_identifier [String, Symbol] the bundle identifier of the package,
454
+ # Should match that in the .pkg itself, but defaults to 'xolo.fileName'
455
+ #
456
+ # @option opts bundle_version [String, Symbol] the version of the package.
457
+ # Defaults to '0'
458
+ #
459
+ # @option opts subtitle [String] a subtitle for the package, optional
460
+ #
461
+ # @option opts full_size_image_url [String] optional, used during MDM deployment
462
+ #
463
+ # @option opts display_image_url [String] optional, used during MDM deployment
464
+ #
465
+ # @return [void]
466
+ ##############################
467
+ def generate_manifest(filepath, **opts)
468
+ # make sure the file exists
469
+ file = Pathname.new(filepath)
470
+ validate_local_file(file)
471
+
472
+ filesize = file.size
473
+ url = parse_manifest_url opts[:url], append_filename: opts[:append_filename_to_url]
474
+
475
+ # make the manifest
476
+ new_manifest = MANIFEST_PLIST_TEMPLATE.dup
477
+ new_manifest[:items][0][:assets][0]['url'] = url.to_s
478
+
479
+ # get the checksum(s)
480
+ calculate_manifest_checksums(file, new_manifest, chunk_size: opts[:chunk_size])
481
+
482
+ append_manifest_image('full-size-image', opts[:full_size_image_url], new_manifest) if opts[:full_size_image_url]
483
+
484
+ append_manifest_image('display-image', opts[:display_image_url], new_manifest) if opts[:display_image_url]
485
+
486
+ new_manifest[:items][0][:metadata]['title'] = packageName
487
+ new_manifest[:items][0][:metadata]['subtitle'] = opts[:subtitle] if opts[:subtitle]
488
+ new_manifest[:items][0][:metadata]['sizeInBytes'] = filesize
489
+ new_manifest[:items][0][:metadata]['bundle-identifier'] = opts[:bundle_identifier] || "xolo.#{fileName}"
490
+ new_manifest[:items][0][:metadata]['bundle-version'] = opts[:bundle_version] || '0'
491
+
492
+ # TESTING - store the whole-file checksum in
493
+ # manifest[:items][0][:metadata]['sha256-whole']. taking it from
494
+ # manifest[:items][0][:assets][0]['sha256s'][0], if available, or generate it if needed
495
+ # It is used by the deploy_via_mdm method.
496
+ # The test will be to deploy this pkg via MDM in a prestage, and see
497
+ # if the 'unknown' hash key 'sha256-whole' causes a problem installing.
498
+ new_manifest[:items][0][:metadata]['sha256-whole'] =
499
+ if new_manifest[:items][0][:assets][0]['sha256s'].size == 1
500
+ new_manifest[:items][0][:assets][0]['sha256s'][0]
501
+ else
502
+ new_manifest[:items][0][:assets][0]['sha256s'] = [Digest::SHA256.hexdigest(file.read)]
503
+ end
504
+
505
+ plist = CFPropertyList::List.new
506
+ plist.value = CFPropertyList.guess(new_manifest)
507
+ self.manifest = plist.to_str CFPropertyList::List::FORMAT_XML, formatted: true
508
+ self.manifestFileName = default_manifestFileName
509
+ end
510
+
511
+ # validate a local file path, raising an error if it's not valid
512
+ #
513
+ # @param filepath [Pathname] the path to a local copy of the package file for which
514
+ # @return [void]
515
+ ##############################
516
+ def validate_local_file(file)
517
+ raise ArgumentError, 'No locally-readable file provided' unless file.readable?
518
+ end
519
+ private :validate_local_file
520
+
521
+ # Figure out the url to use for a manifest, based on the class default or
522
+ # one provided in the options.
523
+ # Raises an error if no URL is provided directly or via the class default, or if
524
+ # the url is not valid.
525
+ #
526
+ # @param given_url [String] the URL to use, if provided
527
+ #
528
+ # @return [URI] the URI object for the URL
529
+ ##############################
530
+ def parse_manifest_url(given_url = nil, append_filename: true)
531
+ url = given_url || self.class.default_manifest_base_url
532
+ raise ArgumentError, 'No URL provided for manifest' unless url
533
+
534
+ # append the filename to the URL if needed
535
+ url = "#{url.to_s.chomp('/')}/#{CGI.escape fileName}" unless append_filename == false
536
+
537
+ # check validity and return
538
+ URI.parse url
539
+ end
540
+ private :parse_manifest_url
541
+
542
+ # calculate the manifest checksum[s] for a given file, and store in the manifest data
543
+ #
544
+ # @param file [Pathname] the path to the file to checksum
545
+ # @param chunk_size [Integer] the size of each chunk in the manifest, in bytes.
546
+ # if omitted, the whole file will be checksummed at once and downloads will not be chunked.
547
+ # A common chunk size is 10MB, or 1024 * 1024 * 10
548
+ # @param new_manifest [Hash] the manifest data to update with the checksums
549
+ #
550
+ # @return [void]
551
+ ##############################
552
+ def calculate_manifest_checksums(file, new_manifest, chunk_size: nil)
553
+ # are we chunking the download?
554
+ if chunk_size.is_a? Integer
555
+ new_manifest[:items][0][:assets][0]['sha256-size'] = chunk_size
556
+ file.open do |f|
557
+ while chunk = f.read(chunk_size) # only load chunk_size bytes at a time
558
+ new_manifest[:items][0][:assets][0]['sha256s'] << Digest::SHA256.hexdigest(chunk)
559
+ end
560
+ end
561
+
562
+ # not chunking, use the file filesize
563
+ else
564
+ new_manifest[:items][0][:assets][0]['sha256-size'] = file.size
565
+ new_manifest[:items][0][:assets][0]['sha256s'] = [Digest::SHA256.hexdigest(file.read)]
566
+ end
567
+ end
568
+ private :calculate_manifest_checksums
569
+
570
+ # Append an image URL to the manifest, validating it as a URI
571
+ #
572
+ # @param asset_kind [String] the kind of asset, either 'full-size-image' or 'display-image'
573
+ # @param url [String] the URL to append
574
+ # @param new_manifest [Hash] the manifest data to update with the image URL
575
+ #
576
+ # @return [void]
577
+ ##############################
578
+ def append_manifest_image(asset_kind, url, new_manifest)
579
+ new_manifest[:items][0][:assets] << {
580
+ 'kind' => asset_kind,
581
+ 'url' => URI.parse(url).to_s
582
+ }
583
+ end
584
+ private :append_manifest_image
585
+
586
+ # Upload a package file to Jamf Pro for this package object.
587
+ # After uploading, the upload response is in the @upload_response attribute.
588
+ #
589
+ # This uses the Jamf Pro API to upload the file via the package/upload endpoint.
590
+ # If you don't use an appropriate primary distribution point, this may not work.
591
+ # Also, that endpoint may not upload to any other distribution points.
592
+ #
593
+ # The fileName attribute of the JPackage object will be updated to the local filename.
594
+ # If that filename is in use by some other package, you'll get an error:
595
+ # Field: fileName, Error: DUPLICATE_FIELD duplicate name
596
+ #
597
+ # IMPORTANT: This will automatically call #save at least once, and possibly twice.
598
+ # First, in order to ensure the correct fileName in Jamf based on the file being uploaded,
599
+ # and second, in order to update the checksum and manifest in Jamf Pro, if needed.
600
+ # *** Any other outstanding changes will also be saved!
601
+ #
602
+ # @param filepath [String, Pathname] the path to the package file to upload
603
+ #
604
+ # @param opts[Hash] a hash of keyword arguments
605
+ #
606
+ # @option opts :update_checksum [Boolean] update the checksum of the package in Jamf Pro.
607
+ # Defaults to true. All new checksums are SHA_512.
608
+ #
609
+ # @option opts :update_manifest [Boolean] update the manifest of the package in Jamf Pro
610
+ # Defaults to true
611
+ #
612
+ # @options opts url [String] the URL where the package will be downloaded from,
613
+ # defaults to the class default
614
+ #
615
+ # @option opts append_filename_to_url [Boolean] should the fileName be appended to the URL,
616
+ # defaults to true.
617
+ # If false, the url given must be the full URL to download the individual package file.
618
+ #
619
+ # @option opts chunk_size [Integer] the size of each chunk in the manifest, in bytes.
620
+ # If omitted, the whole file will be checksummed at once and downloads will not be chunked.
621
+ # A common chunk size is 10MB, or 1024 * 1024 * 10.
622
+ # NOTE: Not all distribution points support chunked downloads.
623
+ #
624
+ # @option opts bundle_identifier [String, Symbol] the bundle identifier of the package,
625
+ # Should match that in the .pkg itself, but defaults to 'xolo.fileName'
626
+ #
627
+ # @option opts bundle_version [String, Symbol] the version of the package.
628
+ # Defaults to '0'
629
+ #
630
+ # @option opts subtitle [String] a subtitle for the package, optional
631
+ #
632
+ # @option opts full_size_image_url [String] optional, used during MDM deployment
633
+ #
634
+ # @option opts display_image_url [String] optional, used during MDM deployment
635
+ #
636
+ # @return [void]
637
+ ##############################
638
+ def upload(filepath, **opts)
639
+ file = Pathname.new(filepath)
640
+ validate_local_file(file)
641
+
642
+ # update the filename if needed
643
+ # must happen before the upload
644
+ real_filename = file.basename.to_s
645
+ self.fileName = real_filename unless fileName == real_filename
646
+ save
647
+
648
+ # upload the file
649
+ @upload_response = cnx.jp_upload("#{get_path}/#{UPLOAD_ENDPOINT}", file)
650
+ @upload_response[:time] = Time.now
651
+
652
+ # recalulate the checksum unless told no to
653
+ recalculate_checksum(file) unless opts[:update_checksum] == false
654
+
655
+ # generate a manifest if needed
656
+ generate_manifest file, **opts unless opts[:update_manifest] == false
657
+
658
+ # save the new checksum and manifest
659
+ save
660
+ end
661
+
662
+ # Deploy this package to computers or a group via MDM.
663
+ #
664
+ # REQUIREMENTS:
665
+ # - The package must have a manifest, see #generate_manifest
666
+ # - The .pkg file must be a product archive (.pkg) built with Xcode or productbuild.
667
+ # (it must contain a 'Distribution' file, usually generated by those tools)
668
+ # Simple 'component' packages built with pkgbuild are not supported.
669
+ # - The .pkg file must be signed with a Developer ID Installer certificate
670
+ #
671
+ # This will send a command to install the package to one or more
672
+ # computers, and/or the members of a single computer group.
673
+ #
674
+ # @param computer_ids [Array<Integer>,Integer] The ids of the computers to deploy to
675
+ #
676
+ # @param group_id [Integer] The id of the computer group to deploy to
677
+ #
678
+ # @param managed [Boolean] Should the installed package be managed by Jamf Pro, default is false.
679
+ #
680
+ # @return [void]
681
+ ##############################
682
+ def deploy_via_mdm(computer_ids: nil, group_id: nil, managed: false)
683
+ raise Jamf::MissingDataError, 'No manifest set for this package' unless manifest
684
+ raise Jamf::NoSuchItemError, 'This package has no id, it must be saved in Jamf Pro before uploading' unless id
685
+
686
+ # convert the manifest to a ruby hash
687
+ parsed_manifest = manifest_hash
688
+
689
+ # manifest data for the MDMDeploy command, which is a hash.
690
+ # hopefully some day Jamf will just use the manifest for the pkg
691
+ mdm_manifest = {}
692
+ mdm_manifest['url'] = parsed_manifest['items'][0]['assets'][0]['url']
693
+ # See the TESTING note in #generate_manifest
694
+ mdm_manifest['hash'] = parsed_manifest['items'][0]['metadata']['sha256-whole']
695
+ mdm_manifest['hashType'] = CHECKSUM_HASH_TYPE_SHA256_MDM_DEPLOY
696
+ mdm_manifest['sizeInBytes'] = parsed_manifest['items'][0]['metadata']['sizeInBytes']
697
+ mdm_manifest['bundleId'] = parsed_manifest['items'][0]['metadata']['bundle-identifier']
698
+ mdm_manifest['bundleVersion'] = parsed_manifest['items'][0]['metadata']['bundle-version']
699
+ mdm_manifest['title'] = parsed_manifest['items'][0]['metadata']['title']
700
+
701
+ mdm_manifest['subtitle'] = parsed_manifest['items'][0]['metadata']['subtitle'] if parsed_manifest['items'][0]['metadata']['subtitle']
702
+
703
+ parsed_manifest['items'][0]['assets'].each do |asset|
704
+ mdm_manifest['fullSizeImageURL'] = asset['url'] if asset['kind'] == 'full-size-image'
705
+ mdm_manifest['displayImageURL'] = asset['url'] if asset['kind'] == 'display-image'
706
+ end
707
+
708
+ # make sure the computers are in an array
709
+ computer_ids = [computer_ids].flatten.compact.uniq
710
+
711
+ # make the payload
712
+ payload = {
713
+ manifest: mdm_manifest,
714
+ installAsManaged: managed,
715
+ devices: computer_ids,
716
+ groupId: group_id.to_s
717
+ }
718
+ # send the command
719
+ @deploy_response = cnx.post(DEPLOYMENT_ENDPOINT, payload)
720
+ end
721
+
722
+ end # class
723
+
724
+ end # module