ruby-jss 4.1.1 → 4.2.0b2

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.
Files changed (775) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +66 -1
  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 +6 -541
  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 -87
  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