ruby-jss 2.0.0a11 → 2.0.0b5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (498) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +1 -0
  3. data/README-2.0.0.md +59 -35
  4. data/README.md +227 -172
  5. data/lib/jamf/api/classic/api_objects/computer.rb +18 -15
  6. data/lib/jamf/api/classic/api_objects/computer_group.rb +1 -0
  7. data/lib/jamf/api/classic/api_objects/criteriable.rb +1 -1
  8. data/lib/jamf/api/classic/api_objects/distribution_point.rb +12 -50
  9. data/lib/jamf/api/classic/api_objects/mdm.rb +40 -24
  10. data/lib/jamf/api/classic/api_objects/mobile_device.rb +8 -12
  11. data/lib/jamf/api/classic/api_objects/mobile_device_application.rb +35 -6
  12. data/lib/jamf/api/classic/api_objects/patch_title.rb +14 -9
  13. data/lib/jamf/api/classic/api_objects/policy.rb +8 -17
  14. data/lib/jamf/api/classic/api_objects/script.rb +1 -1
  15. data/lib/jamf/api/classic/base_classes/advanced_search.rb +4 -4
  16. data/lib/jamf/api/classic/base_classes/api_object.rb +94 -35
  17. data/lib/jamf/api/classic/base_classes/extension_attribute.rb +2 -2
  18. data/lib/jamf/api/classic/base_classes/group.rb +57 -40
  19. data/lib/jamf/api/classic/base_classes/patch_source.rb +10 -5
  20. data/lib/jamf/api/connection/attributes.rb +51 -4
  21. data/lib/jamf/api/connection/classic_api.rb +2 -1
  22. data/lib/jamf/api/connection/connect.rb +49 -2
  23. data/lib/jamf/api/connection/constants.rb +6 -0
  24. data/lib/jamf/api/connection/jamf_pro_api.rb +6 -2
  25. data/lib/jamf/api/connection/token.rb +10 -3
  26. data/lib/jamf/api/connection.rb +1 -1
  27. data/lib/jamf/api/jamf_pro/api_objects/inventory_preload_record.rb +9 -1
  28. data/lib/jamf/api/jamf_pro/base_classes/oapi_object.rb +15 -9
  29. data/lib/jamf/api/jamf_pro/mixins/collection_resource.rb +8 -12
  30. data/lib/jamf/api/jamf_pro/mixins/macos_managed_updates.rb +178 -0
  31. data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_preview_search_results.rb +2 -3
  32. data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_v2_search_results.rb +1 -2
  33. data/lib/jamf/api/jamf_pro/oapi_schemas/account.rb +1 -2
  34. data/lib/jamf/api/jamf_pro/oapi_schemas/{access_groups_search_results.rb → account_driven_user_enrollment_session_token_settings.rb} +14 -14
  35. data/lib/jamf/api/jamf_pro/oapi_schemas/account_group.rb +1 -2
  36. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences.rb +1 -2
  37. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v1.rb +1 -2
  38. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v4.rb +1 -2
  39. data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_history.rb +1 -2
  40. data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_history_search_results.rb +1 -2
  41. data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_summary.rb +1 -2
  42. data/lib/jamf/api/jamf_pro/oapi_schemas/admin_account.rb +1 -2
  43. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search.rb +1 -2
  44. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_criteria_choices.rb +1 -2
  45. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_search_results.rb +1 -2
  46. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search.rb +1 -2
  47. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search_search_results.rb +1 -2
  48. data/lib/jamf/api/jamf_pro/oapi_schemas/android_details.rb +1 -2
  49. data/lib/jamf/api/jamf_pro/oapi_schemas/api_error.rb +1 -2
  50. data/lib/jamf/api/jamf_pro/oapi_schemas/api_error_cause.rb +1 -2
  51. data/lib/jamf/api/jamf_pro/oapi_schemas/app_analytics_setting.rb +1 -2
  52. data/lib/jamf/api/jamf_pro/oapi_schemas/app_dynamics_config.rb +1 -2
  53. data/lib/jamf/api/jamf_pro/oapi_schemas/app_path.rb +1 -2
  54. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field.rb +1 -2
  55. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field_search_results.rb +1 -2
  56. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_settings.rb +1 -2
  57. data/lib/jamf/api/jamf_pro/oapi_schemas/apple_tv_details.rb +1 -2
  58. data/lib/jamf/api/jamf_pro/oapi_schemas/application_attributes.rb +1 -2
  59. data/lib/jamf/api/jamf_pro/oapi_schemas/application_configuration.rb +1 -2
  60. data/lib/jamf/api/jamf_pro/oapi_schemas/assign_remove_profile_response_sync_state.rb +1 -2
  61. data/lib/jamf/api/jamf_pro/oapi_schemas/attributes.rb +1 -2
  62. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account.rb +1 -2
  63. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account_v1.rb +1 -2
  64. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token.rb +1 -2
  65. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token_v1.rb +1 -2
  66. data/lib/jamf/api/jamf_pro/oapi_schemas/authorization.rb +1 -2
  67. data/lib/jamf/api/jamf_pro/oapi_schemas/authorization_v1.rb +1 -2
  68. data/lib/jamf/api/jamf_pro/oapi_schemas/{deprecated_configuration_search_results.rb → available_updates.rb} +12 -20
  69. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_ad_migration_report_process_status.rb +1 -2
  70. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_ad_migration_report_request.rb +1 -2
  71. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration.rb +1 -2
  72. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_request.rb +1 -2
  73. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_update.rb +1 -2
  74. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_mappings.rb +1 -2
  75. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration.rb +1 -2
  76. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_request.rb +1 -2
  77. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_update.rb +1 -2
  78. data/lib/jamf/api/jamf_pro/oapi_schemas/branding_image_url.rb +1 -2
  79. data/lib/jamf/api/jamf_pro/oapi_schemas/building.rb +1 -2
  80. data/lib/jamf/api/jamf_pro/oapi_schemas/building_search_results.rb +1 -2
  81. data/lib/jamf/api/jamf_pro/oapi_schemas/cache_settings.rb +1 -2
  82. data/lib/jamf/api/jamf_pro/oapi_schemas/categories_search_results.rb +1 -2
  83. data/lib/jamf/api/jamf_pro/oapi_schemas/category.rb +1 -2
  84. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_details.rb +1 -4
  85. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_identity_v2.rb +1 -2
  86. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_key.rb +1 -2
  87. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_record.rb +1 -2
  88. data/lib/jamf/api/jamf_pro/oapi_schemas/classic_ldap_mappings.rb +1 -2
  89. data/lib/jamf/api/jamf_pro/oapi_schemas/client_check_in_v2.rb +1 -2
  90. data/lib/jamf/api/jamf_pro/oapi_schemas/client_check_in_v3.rb +1 -2
  91. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common.rb +1 -2
  92. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_request.rb +1 -2
  93. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_response.rb +1 -2
  94. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_pool_statistics.rb +1 -6
  95. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_status.rb +1 -2
  96. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore.rb +1 -3
  97. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore_file.rb +1 -4
  98. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_request.rb +1 -6
  99. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_response.rb +1 -9
  100. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_request.rb +1 -2
  101. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_response.rb +1 -2
  102. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_update.rb +1 -2
  103. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_application.rb +2 -3
  104. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_attachment.rb +2 -3
  105. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_certificate.rb +26 -3
  106. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_configuration_profile.rb +2 -3
  107. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching.rb +2 -3
  108. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_alert.rb +1 -2
  109. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_cache_detail.rb +1 -2
  110. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error.rb +1 -2
  111. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error_user_info.rb +1 -2
  112. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent.rb +1 -2
  113. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_alert.rb +1 -2
  114. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_capabilities.rb +1 -2
  115. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_details.rb +1 -2
  116. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_local_network.rb +1 -2
  117. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk.rb +1 -2
  118. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk_encryption.rb +2 -3
  119. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_extension_attribute.rb +2 -3
  120. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_font.rb +2 -3
  121. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general.rb +2 -3
  122. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general_update.rb +1 -2
  123. data/lib/jamf/api/jamf_pro/oapi_schemas/{mdm_signing_certificate.rb → computer_group.rb} +18 -24
  124. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware.rb +2 -3
  125. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware_update.rb +1 -2
  126. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_ibeacon.rb +2 -3
  127. data/lib/jamf/api/jamf_pro/oapi_schemas/{computer_inventory_response.rb → computer_inventory.rb} +4 -5
  128. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_preferences.rb +1 -2
  129. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_settings.rb +1 -2
  130. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_recovery_lock_password_response.rb +1 -2
  131. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_search_results.rb +4 -5
  132. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_update_request.rb +1 -2
  133. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_licensed_software.rb +2 -3
  134. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_local_user_account.rb +2 -3
  135. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_location.rb +1 -2
  136. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_mdm_capability.rb +1 -2
  137. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system.rb +2 -3
  138. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system_update.rb +1 -2
  139. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_overview.rb +1 -2
  140. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_package_receipts.rb +2 -3
  141. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition.rb +1 -2
  142. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_encryption.rb +1 -2
  143. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_file_vault2_state.rb +1 -2
  144. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_plugin.rb +2 -3
  145. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage.rb +1 -2
  146. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results.rb +1 -2
  147. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results_v2.rb +1 -2
  148. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_v2.rb +1 -2
  149. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_printer.rb +2 -3
  150. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_purchase.rb +2 -3
  151. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_remote_management.rb +1 -2
  152. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_section.rb +1 -2
  153. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_security.rb +2 -3
  154. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_service.rb +2 -3
  155. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_software_update.rb +2 -3
  156. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_storage.rb +2 -3
  157. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_user_and_location.rb +2 -3
  158. data/lib/jamf/api/jamf_pro/oapi_schemas/computers_search_results.rb +1 -2
  159. data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_profile.rb +1 -2
  160. data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_search_results.rb +1 -2
  161. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_candidate_request.rb +1 -2
  162. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_response.rb +1 -2
  163. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_status_response.rb +1 -2
  164. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_update_request.rb +1 -2
  165. data/lib/jamf/api/jamf_pro/oapi_schemas/country.rb +1 -2
  166. data/lib/jamf/api/jamf_pro/oapi_schemas/country_codes.rb +1 -2
  167. data/lib/jamf/api/jamf_pro/oapi_schemas/create_path.rb +1 -2
  168. data/lib/jamf/api/jamf_pro/oapi_schemas/csa_token.rb +1 -2
  169. data/lib/jamf/api/jamf_pro/oapi_schemas/current_account.rb +1 -2
  170. data/lib/jamf/api/jamf_pro/oapi_schemas/current_authorization.rb +1 -2
  171. data/lib/jamf/api/jamf_pro/oapi_schemas/data_roaming_setting.rb +1 -2
  172. data/lib/jamf/api/jamf_pro/oapi_schemas/database_password.rb +1 -2
  173. data/lib/jamf/api/jamf_pro/oapi_schemas/day_of_week.rb +1 -2
  174. data/lib/jamf/api/jamf_pro/oapi_schemas/delete_user_command.rb +1 -2
  175. data/lib/jamf/api/jamf_pro/oapi_schemas/department.rb +1 -2
  176. data/lib/jamf/api/jamf_pro/oapi_schemas/departments_search_results.rb +1 -2
  177. data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task.rb +1 -2
  178. data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task_search_results.rb +1 -2
  179. data/lib/jamf/api/jamf_pro/oapi_schemas/device_communication_settings.rb +1 -2
  180. data/lib/jamf/api/jamf_pro/oapi_schemas/device_compliance_information.rb +1 -2
  181. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device.rb +1 -2
  182. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device_search_results.rb +1 -2
  183. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_body.rb +1 -2
  184. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_response.rb +1 -2
  185. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance.rb +1 -2
  186. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_search_results.rb +1 -2
  187. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_sync_status.rb +1 -2
  188. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage.rb +1 -2
  189. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage_v2.rb +1 -2
  190. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_token.rb +1 -2
  191. data/lib/jamf/api/jamf_pro/oapi_schemas/diagnostic_submission_setting.rb +1 -2
  192. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook.rb +1 -2
  193. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_exclusions.rb +1 -2
  194. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_limitations.rb +1 -2
  195. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_scope.rb +1 -2
  196. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_search_results.rb +1 -2
  197. data/lib/jamf/api/jamf_pro/oapi_schemas/enable_lost_mode_command.rb +1 -2
  198. data/lib/jamf/api/jamf_pro/oapi_schemas/engage.rb +1 -2
  199. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_preview.rb +12 -6
  200. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_v2.rb +1 -2
  201. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization.rb +1 -2
  202. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_branding_settings.rb +1 -2
  203. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependencies.rb +1 -2
  204. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependency.rb +1 -2
  205. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_ldap_group_access.rb +1 -2
  206. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel.rb +1 -2
  207. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_ldap_auth.rb +1 -2
  208. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_list.rb +1 -2
  209. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_sso_auth.rb +1 -2
  210. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_text.rb +1 -2
  211. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results.rb +1 -2
  212. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results_v2.rb +1 -2
  213. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_v2.rb +3 -3
  214. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_method.rb +1 -2
  215. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_process_text_object.rb +5 -6
  216. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_settings_v2.rb +1 -2
  217. data/lib/jamf/api/jamf_pro/oapi_schemas/export_field.rb +1 -2
  218. data/lib/jamf/api/jamf_pro/oapi_schemas/export_parameters.rb +5 -2
  219. data/lib/jamf/api/jamf_pro/oapi_schemas/extension_attribute.rb +1 -2
  220. data/lib/jamf/api/jamf_pro/oapi_schemas/extension_attribute_v2.rb +1 -2
  221. data/lib/jamf/api/jamf_pro/oapi_schemas/external_recipient.rb +1 -2
  222. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment.rb +1 -2
  223. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_delete.rb +1 -2
  224. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_v2.rb +1 -2
  225. data/lib/jamf/api/jamf_pro/oapi_schemas/filter.rb +1 -2
  226. data/lib/jamf/api/jamf_pro/oapi_schemas/font_path.rb +1 -2
  227. data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage.rb +1 -2
  228. data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage_v2.rb +1 -2
  229. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization.rb +1 -2
  230. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel.rb +1 -2
  231. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_ldap_auth.rb +1 -2
  232. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_sso_auth.rb +1 -2
  233. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_text.rb +1 -2
  234. data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage.rb +1 -2
  235. data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage_v2.rb +1 -2
  236. data/lib/jamf/api/jamf_pro/oapi_schemas/group_mappings.rb +1 -2
  237. data/lib/jamf/api/jamf_pro/oapi_schemas/group_membership.rb +2 -3
  238. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search.rb +1 -2
  239. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_request.rb +1 -4
  240. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_response.rb +1 -4
  241. data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results.rb +1 -6
  242. data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results_v1.rb +1 -2
  243. data/lib/jamf/api/jamf_pro/oapi_schemas/href_response.rb +3 -4
  244. data/lib/jamf/api/jamf_pro/oapi_schemas/icon_response.rb +1 -2
  245. data/lib/jamf/api/jamf_pro/oapi_schemas/id_and_name.rb +1 -2
  246. data/lib/jamf/api/jamf_pro/oapi_schemas/id_and_name_v2.rb +1 -2
  247. data/lib/jamf/api/jamf_pro/oapi_schemas/ids.rb +5 -2
  248. data/lib/jamf/api/jamf_pro/oapi_schemas/initialize.rb +1 -2
  249. data/lib/jamf/api/jamf_pro/oapi_schemas/initialize_v1.rb +1 -2
  250. data/lib/jamf/api/jamf_pro/oapi_schemas/install_package.rb +1 -2
  251. data/lib/jamf/api/jamf_pro/oapi_schemas/integer_wrapper.rb +1 -2
  252. data/lib/jamf/api/jamf_pro/oapi_schemas/internal_recipient.rb +1 -2
  253. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_information.rb +1 -2
  254. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_error.rb +1 -2
  255. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error.rb +1 -2
  256. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error_cause.rb +1 -2
  257. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_success.rb +1 -2
  258. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute.rb +1 -2
  259. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column.rb +1 -2
  260. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column_result.rb +1 -2
  261. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_invalid_csv_response.rb +1 -2
  262. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record.rb +1 -2
  263. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results.rb +1 -2
  264. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results_v2.rb +1 -2
  265. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_v2.rb +1 -2
  266. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_configuration.rb +1 -2
  267. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_search_results.rb +1 -2
  268. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_details.rb +1 -2
  269. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_details_v2.rb +1 -2
  270. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_application_response.rb +1 -2
  271. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_nation_credentials.rb +1 -2
  272. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_package_response.rb +1 -2
  273. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_information.rb +1 -2
  274. data/lib/jamf/api/jamf_pro/oapi_schemas/{enrollment_access_group.rb → jamf_pro_information_v2.rb} +35 -34
  275. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_server_url.rb +1 -2
  276. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_version.rb +1 -2
  277. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_protect_plan.rb +1 -2
  278. data/lib/jamf/api/jamf_pro/oapi_schemas/language_code.rb +5 -6
  279. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_request.rb +1 -2
  280. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_response.rb +1 -2
  281. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_update.rb +1 -2
  282. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group.rb +1 -2
  283. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group_search_results.rb +1 -2
  284. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_server.rb +1 -2
  285. data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile.rb +1 -2
  286. data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile_search_results.rb +1 -2
  287. data/lib/jamf/api/jamf_pro/oapi_schemas/locale.rb +1 -2
  288. data/lib/jamf/api/jamf_pro/oapi_schemas/location.rb +1 -2
  289. data/lib/jamf/api/jamf_pro/oapi_schemas/location_information.rb +1 -2
  290. data/lib/jamf/api/jamf_pro/oapi_schemas/location_information_v2.rb +1 -2
  291. data/lib/jamf/api/jamf_pro/oapi_schemas/location_v2.rb +1 -2
  292. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_configuration.rb +1 -2
  293. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_search_results.rb +1 -2
  294. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update.rb +28 -3
  295. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update_response.rb +1 -4
  296. data/lib/jamf/api/jamf_pro/oapi_schemas/markdown.rb +1 -2
  297. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_client_type.rb +1 -2
  298. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command.rb +1 -2
  299. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_client.rb +1 -2
  300. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_request.rb +1 -2
  301. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_state.rb +1 -2
  302. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_type.rb +1 -2
  303. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_mappings.rb +1 -2
  304. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_request.rb +1 -4
  305. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_response.rb +1 -4
  306. data/lib/jamf/api/jamf_pro/oapi_schemas/memcached_endpoints.rb +1 -2
  307. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device.rb +1 -2
  308. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_application.rb +1 -2
  309. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_attachment.rb +1 -2
  310. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_attachment_v2.rb +1 -2
  311. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate_v1.rb +1 -2
  312. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate_v2.rb +61 -3
  313. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details.rb +1 -2
  314. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_get_v2.rb +1 -2
  315. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_v2.rb +7 -2
  316. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_ebook.rb +1 -2
  317. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_extension_attribute_results.rb +1 -2
  318. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_group.rb +1 -2
  319. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage.rb +1 -2
  320. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name.rb +1 -2
  321. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name_v2.rb +1 -2
  322. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names.rb +1 -2
  323. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names_v2.rb +1 -2
  324. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results.rb +1 -2
  325. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results_v2.rb +1 -2
  326. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_v2.rb +1 -2
  327. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_params.rb +1 -2
  328. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_results.rb +1 -2
  329. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_results_v2.rb +1 -2
  330. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_v2.rb +1 -2
  331. data/lib/jamf/api/jamf_pro/oapi_schemas/network.rb +1 -2
  332. data/lib/jamf/api/jamf_pro/oapi_schemas/network_v2.rb +1 -2
  333. data/lib/jamf/api/jamf_pro/oapi_schemas/notification.rb +1 -2
  334. data/lib/jamf/api/jamf_pro/oapi_schemas/notification_type.rb +3 -3
  335. data/lib/jamf/api/jamf_pro/oapi_schemas/notification_v1.rb +1 -2
  336. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history.rb +1 -6
  337. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_note.rb +1 -6
  338. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_v1.rb +1 -2
  339. data/lib/jamf/api/jamf_pro/oapi_schemas/order_by.rb +1 -2
  340. data/lib/jamf/api/jamf_pro/oapi_schemas/package_manifest.rb +1 -2
  341. data/lib/jamf/api/jamf_pro/oapi_schemas/parent_app.rb +5 -5
  342. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_ids_on_dashboard.rb +1 -2
  343. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_attempt.rb +1 -2
  344. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_attempt_action.rb +1 -2
  345. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log.rb +1 -2
  346. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log_search_results.rb +1 -2
  347. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_on_dashboard.rb +1 -2
  348. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_summary.rb +1 -2
  349. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_version.rb +1 -2
  350. data/lib/jamf/api/jamf_pro/oapi_schemas/personal_hotspot_setting.rb +1 -2
  351. data/lib/jamf/api/jamf_pro/oapi_schemas/plan_search_results.rb +1 -2
  352. data/lib/jamf/api/jamf_pro/oapi_schemas/plugin_path.rb +1 -2
  353. data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties.rb +1 -2
  354. data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties_v1.rb +1 -2
  355. data/lib/jamf/api/jamf_pro/oapi_schemas/post_computer_prestage_v2.rb +1 -2
  356. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependencies.rb +1 -2
  357. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependency.rb +1 -2
  358. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment.rb +1 -2
  359. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment_v2.rb +1 -2
  360. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information.rb +1 -2
  361. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information_v2.rb +1 -2
  362. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope.rb +1 -2
  363. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment.rb +1 -2
  364. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment_v2.rb +1 -2
  365. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response.rb +1 -2
  366. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response_v2.rb +1 -2
  367. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_update.rb +1 -2
  368. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_v2.rb +1 -2
  369. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status.rb +1 -2
  370. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status_v2.rb +1 -2
  371. data/lib/jamf/api/jamf_pro/oapi_schemas/process_texts_search_results.rb +3 -4
  372. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_registration_request.rb +1 -2
  373. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_settings_response.rb +1 -2
  374. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_updatable_settings_request.rb +1 -2
  375. data/lib/jamf/api/jamf_pro/oapi_schemas/provisioning_profile.rb +1 -2
  376. data/lib/jamf/api/jamf_pro/oapi_schemas/purchasing.rb +1 -2
  377. data/lib/jamf/api/jamf_pro/oapi_schemas/purchasing_v2.rb +1 -2
  378. data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage.rb +1 -2
  379. data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage_v2.rb +1 -2
  380. data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage.rb +1 -2
  381. data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage_v2.rb +1 -2
  382. data/lib/jamf/api/jamf_pro/oapi_schemas/recalculation_results.rb +1 -2
  383. data/lib/jamf/api/jamf_pro/oapi_schemas/recipient.rb +1 -2
  384. data/lib/jamf/api/jamf_pro/oapi_schemas/recipients.rb +1 -2
  385. data/lib/jamf/api/jamf_pro/oapi_schemas/redeploy_jamf_management_framework_response.rb +1 -2
  386. data/lib/jamf/api/jamf_pro/oapi_schemas/reenrollment.rb +1 -2
  387. data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_response.rb +1 -2
  388. data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_search_results.rb +1 -2
  389. data/lib/jamf/api/jamf_pro/oapi_schemas/renew_mdm_profile_response.rb +1 -2
  390. data/lib/jamf/api/jamf_pro/oapi_schemas/restart_device_command.rb +1 -2
  391. data/lib/jamf/api/jamf_pro/oapi_schemas/retry_patch_policy_params.rb +1 -2
  392. data/lib/jamf/api/jamf_pro/oapi_schemas/{safelisted_apps.rb → safelisted_app.rb} +15 -11
  393. data/lib/jamf/api/jamf_pro/oapi_schemas/script.rb +1 -2
  394. data/lib/jamf/api/jamf_pro/oapi_schemas/scripts_search_results.rb +1 -2
  395. data/lib/jamf/api/jamf_pro/oapi_schemas/search_active_patch_history_params.rb +1 -2
  396. data/lib/jamf/api/jamf_pro/oapi_schemas/search_patch_policy_log_params.rb +1 -2
  397. data/lib/jamf/api/jamf_pro/oapi_schemas/security.rb +1 -2
  398. data/lib/jamf/api/jamf_pro/oapi_schemas/security_v2.rb +1 -2
  399. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_install_settings.rb +1 -2
  400. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_interaction_settings.rb +1 -2
  401. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_login_settings.rb +1 -2
  402. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_settings.rb +1 -2
  403. data/lib/jamf/api/jamf_pro/oapi_schemas/session.rb +1 -2
  404. data/lib/jamf/api/jamf_pro/oapi_schemas/session_candidate_request.rb +1 -2
  405. data/lib/jamf/api/jamf_pro/oapi_schemas/session_details.rb +1 -2
  406. data/lib/jamf/api/jamf_pro/oapi_schemas/session_details_search_results.rb +1 -2
  407. data/lib/jamf/api/jamf_pro/oapi_schemas/session_status.rb +1 -2
  408. data/lib/jamf/api/jamf_pro/oapi_schemas/set_recovery_lock_command.rb +1 -2
  409. data/lib/jamf/api/jamf_pro/oapi_schemas/settings_command.rb +1 -2
  410. data/lib/jamf/api/jamf_pro/oapi_schemas/shared_device_configuration.rb +1 -2
  411. data/lib/jamf/api/jamf_pro/oapi_schemas/signature.rb +1 -2
  412. data/lib/jamf/api/jamf_pro/oapi_schemas/site.rb +1 -2
  413. data/lib/jamf/api/jamf_pro/oapi_schemas/smart_search_criterion.rb +1 -2
  414. data/lib/jamf/api/jamf_pro/oapi_schemas/software_title_configuration.rb +1 -2
  415. data/lib/jamf/api/jamf_pro/oapi_schemas/software_title_patch_policy_summaries.rb +1 -2
  416. data/lib/jamf/api/jamf_pro/oapi_schemas/software_update_settings.rb +1 -2
  417. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore.rb +1 -2
  418. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_cert_parse_response.rb +1 -2
  419. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_details.rb +1 -2
  420. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_parse.rb +1 -2
  421. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response.rb +1 -2
  422. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response_with_details.rb +1 -2
  423. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_with_details.rb +1 -2
  424. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_metadata_url.rb +1 -2
  425. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_settings.rb +1 -2
  426. data/lib/jamf/api/jamf_pro/oapi_schemas/startup_status.rb +1 -2
  427. data/lib/jamf/api/jamf_pro/oapi_schemas/static_user_group.rb +1 -2
  428. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity.rb +1 -2
  429. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_certificate_upload.rb +1 -2
  430. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_create.rb +1 -2
  431. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_search_results.rb +1 -2
  432. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_update.rb +1 -2
  433. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_features.rb +1 -2
  434. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_request.rb +5 -5
  435. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_response.rb +5 -5
  436. data/lib/jamf/api/jamf_pro/oapi_schemas/time_frame.rb +1 -2
  437. data/lib/jamf/api/jamf_pro/oapi_schemas/time_zone.rb +1 -2
  438. data/lib/jamf/api/jamf_pro/oapi_schemas/tv_os_details.rb +9 -2
  439. data/lib/jamf/api/jamf_pro/oapi_schemas/udids.rb +1 -2
  440. data/lib/jamf/api/jamf_pro/oapi_schemas/update_apple_tv.rb +1 -2
  441. data/lib/jamf/api/jamf_pro/oapi_schemas/update_ios.rb +1 -2
  442. data/lib/jamf/api/jamf_pro/oapi_schemas/update_ios_v2.rb +1 -2
  443. data/lib/jamf/api/jamf_pro/oapi_schemas/update_mobile_device.rb +1 -2
  444. data/lib/jamf/api/jamf_pro/oapi_schemas/update_mobile_device_v2.rb +1 -2
  445. data/lib/jamf/api/jamf_pro/oapi_schemas/update_tv_os.rb +1 -2
  446. data/lib/jamf/api/jamf_pro/oapi_schemas/user_attributes.rb +1 -2
  447. data/lib/jamf/api/jamf_pro/oapi_schemas/user_mappings.rb +1 -2
  448. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search.rb +1 -2
  449. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_request.rb +1 -4
  450. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_response.rb +1 -4
  451. data/lib/jamf/api/jamf_pro/oapi_schemas/v1_site.rb +3 -3
  452. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_ca_record.rb +1 -2
  453. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record.rb +1 -2
  454. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record_search_results.rb +1 -2
  455. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_service_status.rb +1 -2
  456. data/lib/jamf/api/jamf_pro/oapi_schemas/verbose_package_deployment_response.rb +1 -2
  457. data/lib/jamf/api/jamf_pro/oapi_schemas/voice_roaming_setting.rb +1 -2
  458. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_content.rb +1 -2
  459. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location.rb +1 -2
  460. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_list_view.rb +1 -2
  461. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_patch.rb +1 -2
  462. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_post.rb +1 -2
  463. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_locations.rb +1 -2
  464. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription.rb +1 -2
  465. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription_base.rb +1 -2
  466. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscriptions.rb +1 -2
  467. data/lib/jamf/api/jamf_pro/oapi_schemas/vpp_admin_account.rb +1 -2
  468. data/lib/jamf/api/jamf_pro/oapi_schemas/vpp_token_subscription.rb +1 -2
  469. data/lib/jamf/api/jamf_pro/oapi_schemas/web_link.rb +1 -2
  470. data/lib/jamf/client/jamf_binary.rb +76 -77
  471. data/lib/jamf/client/jamf_helper.rb +245 -235
  472. data/lib/jamf/client/management_action.rb +63 -53
  473. data/lib/jamf/client.rb +3 -3
  474. data/lib/jamf/deprecations/deprecated_api_connection_class.rb +29 -0
  475. data/lib/jamf/deprecations/deprecated_api_constant.rb +3 -1
  476. data/lib/jamf/deprecations/deprecated_config_constant.rb +3 -1
  477. data/lib/jamf/version.rb +1 -1
  478. data/lib/jamf/zeitwerk_config.rb +217 -0
  479. data/lib/jamf.rb +7 -39
  480. data/test/{README.md → README-TEST.md} +3 -0
  481. data/test/bin/runtests +42 -2
  482. data/test/lib/jamf_test/collection_tests.rb +4 -7
  483. data/test/tests/building.rb +41 -0
  484. data/test/tests/computer.rb +41 -0
  485. data/test/tests/computer_group.rb +132 -0
  486. data/test/tests/department.rb +41 -0
  487. data/test/tests/mobile_device.rb +41 -0
  488. data/test/tests/policy.rb +39 -50
  489. metadata +35 -54
  490. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_identity_v1.rb +0 -102
  491. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_request.rb +0 -92
  492. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_response.rb +0 -105
  493. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_update.rb +0 -92
  494. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_request.rb +0 -166
  495. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_response.rb +0 -163
  496. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_update.rb +0 -171
  497. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_settings.rb +0 -264
  498. data/lib/zeitwerk_config.rb +0 -163
@@ -31,7 +31,7 @@ module Jamf
31
31
 
32
32
  # Module for working with the Management Action.app, which is an interface
33
33
  # to the Notification Center
34
- # This should be extended into Jamf::Client
34
+ # This should be included into Jamf::Client
35
35
  #####################################
36
36
  module ManagementAction
37
37
 
@@ -43,67 +43,77 @@ module Jamf
43
43
  # MGMT_ACTION_BUNDLE_ID = 'com.jamfsoftware.Management-Action'.freeze
44
44
  # HUP_NOTIF_CTR_CMD = '/usr/bin/killall sighup usernoted NotificationCenter'.freeze
45
45
 
46
+ # when this module is included, also extend our Class Methods
47
+ def self.included(includer)
48
+ Jamf.load_msg "--> #{includer} is including Jamf::Client::ManagementAction"
49
+ includer.extend(ClassMethods)
50
+ end
51
+
46
52
  # class Methods
47
53
  #####################################
48
54
 
49
- def management_action(msg, title: nil, subtitle: nil, delay: 0)
50
- raise Jamf::InvalidDataError, 'delay: must be a non-negative integer.' unless delay.is_a?(Integer) && delay > -1
55
+ module ClassMethods
51
56
 
52
- cmd = Shellwords.escape MGMT_ACTION.to_s
53
- cmd << " -message #{Shellwords.escape msg.to_s}"
54
- cmd << " -title #{Shellwords.escape title.to_s}" if title
55
- cmd << " -subtitle #{Shellwords.escape subtitle.to_s}" if subtitle
56
- cmd << " -deliverydelay #{Shellwords.escape delay}" if delay > 0
57
- `#{cmd} 2>&1`
58
- end
59
- alias nc_notify management_action
60
-
61
- # Skipping all the force-alerts stuff until we figure out cleaner
62
- # ways to do it in 10.13+
63
- # The plan is to be able to make the NotificationCenter notification be an
64
- # 'alert' (which stays visible til the user clicks) or a
65
- # 'banner' (which vanishes in a few seconds), regardless of the user's
66
- # setting in the NC prefs.
67
-
68
- def force_alerts
69
- orig_flags = {}
70
- console_users.each do |user|
71
- orig_flags[user] = set_mgmt_action_ncprefs_flags user, NC_ALERT_STYLE_FLAGS, hup: false
57
+ def management_action(msg, title: nil, subtitle: nil, delay: 0)
58
+ raise Jamf::InvalidDataError, 'delay: must be a non-negative integer.' unless delay.is_a?(Integer) && delay > -1
59
+
60
+ cmd = Shellwords.escape MGMT_ACTION.to_s
61
+ cmd << " -message #{Shellwords.escape msg.to_s}"
62
+ cmd << " -title #{Shellwords.escape title.to_s}" if title
63
+ cmd << " -subtitle #{Shellwords.escape subtitle.to_s}" if subtitle
64
+ cmd << " -deliverydelay #{Shellwords.escape delay}" if delay > 0
65
+ `#{cmd} 2>&1`
66
+ end
67
+ alias nc_notify management_action
68
+
69
+ # Skipping all the force-alerts stuff until we figure out cleaner
70
+ # ways to do it in 10.13+
71
+ # The plan is to be able to make the NotificationCenter notification be an
72
+ # 'alert' (which stays visible til the user clicks) or a
73
+ # 'banner' (which vanishes in a few seconds), regardless of the user's
74
+ # setting in the NC prefs.
75
+
76
+ def force_alerts
77
+ orig_flags = {}
78
+ console_users.each do |user|
79
+ orig_flags[user] = set_mgmt_action_ncprefs_flags user, NC_ALERT_STYLE_FLAGS, hup: false
80
+ end
81
+ system HUP_NOTIF_CTR_CMD unless orig_flags.empty?
82
+ sleep 1
83
+ orig_flags
72
84
  end
73
- system HUP_NOTIF_CTR_CMD unless orig_flags.empty?
74
- sleep 1
75
- orig_flags
76
- end
77
85
 
78
- def restore_alerts(orig_flags)
79
- orig_flags.each do |user, flags|
80
- set_mgmt_action_ncprefs_flags user, flags, hup: false
86
+ def restore_alerts(orig_flags)
87
+ orig_flags.each do |user, flags|
88
+ set_mgmt_action_ncprefs_flags user, flags, hup: false
89
+ end
90
+ system HUP_NOTIF_CTR_CMD unless orig_flags.empty?
81
91
  end
82
- system HUP_NOTIF_CTR_CMD unless orig_flags.empty?
83
- end
84
92
 
85
- # set the NotificationCenter option flags for a user
86
- # flags = an integer.
87
- #
88
- # Doesn't seem to work in 10.13, so ignore this for now.
89
- #
90
- # @return [Integer] the original flags, or given flags if no originals.
91
- #
92
- def set_mgmt_action_ncprefs_flags(user, flags, hup: true)
93
- plist = Pathname.new "/Users/#{user}/Library/Preferences/#{NCPREFS_DOMAIN}.plist"
94
- prefs = JSS.parse_plist plist
95
- mgmt_action_setting = prefs['apps'].select { |a| a['bundle-id'] == MGMT_ACTION_BUNDLE_ID }.first
96
- if mgmt_action_setting
97
- orig_flags = mgmt_action_setting['flags']
98
- mgmt_action_setting['flags'] = flags
99
- else
100
- orig_flags = flags
101
- prefs['apps'] << { 'bundle-id' => MGMT_ACTION_BUNDLE_ID, 'flags' => flags }
93
+ # set the NotificationCenter option flags for a user
94
+ # flags = an integer.
95
+ #
96
+ # Doesn't seem to work in 10.13, so ignore this for now.
97
+ #
98
+ # @return [Integer] the original flags, or given flags if no originals.
99
+ #
100
+ def set_mgmt_action_ncprefs_flags(user, flags, hup: true)
101
+ plist = Pathname.new "/Users/#{user}/Library/Preferences/#{NCPREFS_DOMAIN}.plist"
102
+ prefs = JSS.parse_plist plist
103
+ mgmt_action_setting = prefs['apps'].select { |a| a['bundle-id'] == MGMT_ACTION_BUNDLE_ID }.first
104
+ if mgmt_action_setting
105
+ orig_flags = mgmt_action_setting['flags']
106
+ mgmt_action_setting['flags'] = flags
107
+ else
108
+ orig_flags = flags
109
+ prefs['apps'] << { 'bundle-id' => MGMT_ACTION_BUNDLE_ID, 'flags' => flags }
110
+ end
111
+ plist.open('w') { |f| f.write JSS.xml_plist_from(prefs) }
112
+ system HUP_NOTIF_CTR_CMD if hup
113
+ orig_flags
102
114
  end
103
- plist.open('w') { |f| f.write JSS.xml_plist_from(prefs) }
104
- system HUP_NOTIF_CTR_CMD if hup
105
- orig_flags
106
- end
115
+
116
+ end # ClassMethods
107
117
 
108
118
  end # moculde
109
119
 
data/lib/jamf/client.rb CHANGED
@@ -64,9 +64,9 @@ module Jamf
64
64
  # the path to a users byhost folder from home
65
65
  USER_PREFS_BYHOST_FOLDER = 'Library/Preferences/ByHost/'.freeze
66
66
 
67
- extend Jamf::Client::JamfBinary
68
- extend Jamf::Client::JamfHelper
69
- extend Jamf::Client::ManagementAction
67
+ include Jamf::Client::JamfBinary
68
+ include Jamf::Client::JamfHelper
69
+ include Jamf::Client::ManagementAction
70
70
 
71
71
  # Class Methods
72
72
  #####################################
@@ -0,0 +1,29 @@
1
+ # Copyright 2022 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
+ # @deprecated Use class Jamf::Connection
25
+ module Jamf
26
+
27
+ APIConnection = Connection
28
+
29
+ end
@@ -22,4 +22,6 @@
22
22
  # language governing permissions and limitations under the Apache License.
23
23
 
24
24
  # @deprecated Use Jamf.cnx to access the module-wide default connection
25
- Jamf::API = Jamf.cnx
25
+ module Jamf
26
+ API = Jamf.cnx
27
+ end
@@ -22,4 +22,6 @@
22
22
  # language governing permissions and limitations under the Apache License.
23
23
 
24
24
  # @deprecated Use Jamf.config to access the module-wide config settings
25
- Jamf::CONFIG = Jamf.config
25
+ module Jamf
26
+ CONFIG = Jamf.config
27
+ end
data/lib/jamf/version.rb CHANGED
@@ -27,6 +27,6 @@
27
27
  module Jamf
28
28
 
29
29
  ### The version of ruby-jss
30
- VERSION = '2.0.0a11'.freeze
30
+ VERSION = '2.0.0b5'.freeze
31
31
 
32
32
  end # module
@@ -0,0 +1,217 @@
1
+ # Copyright 2022 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
+ # Gems
25
+ ######
26
+
27
+ require 'zeitwerk'
28
+
29
+ # Jamf's Zeitwerk Config and processes
30
+ module JamfZeitwerkConfig
31
+
32
+ # touch this file to make zeitwerk and mixins send text to stderr as things load
33
+ # or get mixed in
34
+ VERBOSE_LOADING_FILE = Pathname.new('/tmp/ruby-jss-verbose-loading')
35
+
36
+ # Or, set this ENV var to also make zeitverk and mixins send text to stderr
37
+ VERBOSE_LOADING_ENV = 'RUBY_JSS_VERBOSE_LOADING'
38
+
39
+ # touch this file to make zeitwek eager-load everything when the gem is required.
40
+ EAGER_LOAD_FILE = Pathname.new('/tmp/ruby-jss-zeitwerk-eager-load')
41
+
42
+ # Only look at the filesystem once.
43
+ def self.verbose_loading?
44
+ return @verbose_loading unless @verbose_loading.nil?
45
+
46
+ @verbose_loading = VERBOSE_LOADING_FILE.file?
47
+ @verbose_loading ||= ENV.include? VERBOSE_LOADING_ENV
48
+ @verbose_loading
49
+ end
50
+
51
+ # rubocop: disable Style/StderrPuts
52
+ def self.load_msg(msg)
53
+ $stderr.puts msg if verbose_loading?
54
+ end
55
+ # rubocop: enable Style/StderrPuts
56
+
57
+ # The loader object for Xolo
58
+ def self.loader
59
+ @loader
60
+ end
61
+
62
+ # Configure the Zeitwerk loader, See https://github.com/fxn/zeitwerk
63
+ def self.setup_zeitwerk_loader(zloader)
64
+ @loader = zloader
65
+
66
+ # Ignore this file (more ignores below)
67
+ loader.ignore __FILE__
68
+
69
+ ##### Collaped Paths
70
+
71
+ # these paths all define classes & modules directly below 'Jamf'
72
+ # If we didn't collapse them, then e.g.
73
+ # /jamf/api/base_classes/classic/group.rb
74
+ # would be expected to define
75
+ # Jamf::Api::BaseClasses::Classic::Group
76
+ # rather than what we want:
77
+ # Jamf::Group
78
+ ###################################################
79
+
80
+ loader.collapse("#{__dir__}/api")
81
+
82
+ loader.collapse("#{__dir__}/api/classic")
83
+ loader.collapse("#{__dir__}/api/classic/api_objects")
84
+ loader.collapse("#{__dir__}/api/classic/base_classes")
85
+
86
+ loader.collapse("#{__dir__}/api/jamf_pro")
87
+ loader.collapse("#{__dir__}/api/jamf_pro/api_objects")
88
+ loader.collapse("#{__dir__}/api/jamf_pro/mixins")
89
+ loader.collapse("#{__dir__}/api/jamf_pro/base_classes")
90
+ loader.collapse("#{__dir__}/api/jamf_pro/other_classes")
91
+
92
+ loader.collapse("#{__dir__}/deprecations")
93
+
94
+ ##### Inflected Paths
95
+
96
+ # filenames => Constants, which don't adhere to zeitwerk's parsing standards.
97
+ #
98
+ # Mostly because the a filename like 'oapi_object' would be
99
+ # loaded by zeitwerk expecting it to define 'OapiObject', but it really
100
+ # defines 'OAPIObject'
101
+ ###############################################
102
+
103
+ # Connections
104
+ loader.inflector.inflect 'classic_api' => 'ClassicAPI'
105
+ loader.inflector.inflect 'jamf_pro_api' => 'JamfProAPI'
106
+ loader.inflector.inflect 'jamf_pro_api_error' => 'JamfProAPIError'
107
+
108
+ # API objects, resources, and mixins
109
+ loader.inflector.inflect 'oapi_schemas' => 'OAPISchemas'
110
+ loader.inflector.inflect 'oapi_object' => 'OAPIObject'
111
+ loader.inflector.inflect 'oapi_validate' => 'OAPIValidate'
112
+
113
+ loader.inflector.inflect 'jpapi_resource' => 'JPAPIResource'
114
+
115
+ loader.inflector.inflect 'api_object' => 'APIObject'
116
+ loader.inflector.inflect 'xml_workaround' => 'XMLWorkaround'
117
+ loader.inflector.inflect 'json_object' => 'JSONObject'
118
+ loader.inflector.inflect 'vppable' => 'VPPable'
119
+ loader.inflector.inflect 'osx_configuration_profile' => 'OSXConfigurationProfile'
120
+ loader.inflector.inflect 'jp_extendable' => 'JPExtendable'
121
+ loader.inflector.inflect 'mdm' => 'MDM'
122
+ loader.inflector.inflect 'ibeacon' => 'IBeacon'
123
+ loader.inflector.inflect 'powerbroker_identity_services' => 'PowerBroker'
124
+ loader.inflector.inflect 'admitmac' => 'ADmitMac'
125
+ loader.inflector.inflect 'ip_address' => 'IPAddress'
126
+ loader.inflector.inflect 'netboot_server' => 'NetBootServer'
127
+ loader.inflector.inflect 'vpp_account' => 'VPPAccount'
128
+ loader.inflector.inflect 'removable_macaddr' => 'RemovableMacAddress'
129
+ loader.inflector.inflect 'md_prestage_name' => 'MobileDevicePrestageName'
130
+ loader.inflector.inflect 'md_prestage_names' => 'MobileDevicePrestageNames'
131
+ loader.inflector.inflect 'md_prestage_skip_setup_items' => 'MobileDevicePrestageSkipSetupItems'
132
+ loader.inflector.inflect 'macos_managed_updates' => 'MacOSManagedUpdates'
133
+
134
+ # deprecations, separated so they load only when used.
135
+ # When its time to get rid of them, delete the files from the
136
+ # 'deprecations' directory, and the matching line here.
137
+ loader.inflector.inflect('deprecated_api_constant' => 'API')
138
+ loader.inflector.inflect('deprecated_config_constant' => 'CONFIG')
139
+ loader.inflector.inflect('deprecated_api_connection_class' => 'APIConnection')
140
+
141
+ ##### Ingored Paths
142
+
143
+ # These should be ignored, some will be required directly
144
+ #####################################
145
+
146
+ loader.ignore "#{__dir__}/db_connection.rb"
147
+ loader.ignore "#{__dir__}/ruby_extensions.rb"
148
+ loader.ignore "#{__dir__}/ruby_extensions"
149
+ loader.ignore "#{__dir__}/exceptions.rb"
150
+
151
+ lib_dir = Pathname.new(__dir__).parent.to_s
152
+ loader.ignore "#{lib_dir}/ruby-jss.rb"
153
+ loader.ignore "#{lib_dir}/jss.rb"
154
+ loader.ignore "#{lib_dir}/jss-api.rb"
155
+
156
+ ##### Callbacks
157
+
158
+ # callback for when a specific file/constant loads
159
+ # duplicate and uncomment this if desired to react to
160
+ # specific things loading
161
+ #####################################
162
+ # loader.on_load('Jamf::SomeClass') do |klass, abspath|
163
+ # Jamf.load_msg "I just loaded #{klass} from #{abspath}"
164
+ # end
165
+
166
+ # callback for when anything loads
167
+ # - const_path is like "Jamf::SomeClass" or "Jamf::SomeClass::SOME_CONST_ARRY"
168
+ # - value is the value that constant contains after loading,
169
+ # e.g. the class Jamf::SomeClass for 'Jamf::SomeClass' or
170
+ # an Array for the constant "Jamf::SomeClass::SOME_CONST_ARRY"
171
+ # - abspath is the full path to the file where the constant was loaded from.
172
+ #####################################
173
+ loader.on_load do |const_path, value, abspath|
174
+ load_msg "Zeitwerk just loaded #{value.class} '#{const_path}' from:\n #{abspath}"
175
+
176
+ # Parse OAPI_PROPERTIES into getters and setters for subclasses of
177
+ # OAPIObject in the JPAPI.
178
+ #
179
+ # The class we just loaded must have this method and constant
180
+ # and the method must not have run already for the class or any superclass.
181
+ # This prevents running parse_oapi_properties again in subclasses that
182
+ # don't need to do that
183
+ if value.respond_to?(:oapi_properties_parsed?) && \
184
+ defined?(value::OAPI_PROPERTIES) && \
185
+ !value.oapi_properties_parsed?
186
+
187
+ parsed = value.parse_oapi_properties
188
+ load_msg "Parsed OAPI_PROPERTIES for #{value}" if parsed
189
+ end
190
+
191
+ # Generate the identifier list methods (.all_*) for subclasses of APIObject
192
+ # in the Classic API
193
+ if value.is_a?(Class) && value.superclass == Jamf::APIObject
194
+
195
+ done = value.define_identifier_list_methods
196
+ load_msg "Defined identifier list methods for #{value}" if done
197
+ end
198
+ end
199
+
200
+ loader.setup
201
+ end # setup_zeitwerk_loader
202
+
203
+ # For testing the Zeitwrk Loader.
204
+ # Normally we want autoloading on demand,
205
+ # eager loading loads everything so we can see it
206
+ #
207
+ # To make this happen touch the file defined in EAGER_LOAD_FILE
208
+ def self.eager_load_for_testing
209
+ return unless EAGER_LOAD_FILE.file?
210
+
211
+ loader.eager_load(force: true)
212
+ warn :loaded
213
+ # rescue Zeitwerk::NameError => e
214
+ # warn e.message
215
+ end
216
+
217
+ end # module JamfZeitwerkConfig
data/lib/jamf.rb CHANGED
@@ -54,49 +54,20 @@ require 'jamf/exceptions'
54
54
  require 'jamf/db_connection'
55
55
 
56
56
  # Configure the Zeitwerk loader, See https://github.com/fxn/zeitwerk
57
- require 'zeitwerk'
58
- require 'zeitwerk_config'
59
-
60
- # touch this file to make zeitwerk and mixins send text to stderr as things load
61
- # or get mixed in
62
- JAMF_VERBOSE_LOADING_FILE = Pathname.new('/tmp/ruby-jss-verbose-loading')
63
-
64
- # Or, set this ENV var to also make zeitverk and mixins send text to stderr
65
- JAMF_VERBOSE_LOADING_ENV = 'RUBY_JSS_VERBOSE_LOADING'.freeze
66
-
67
- # touch this file to make zeitwek eager-load everything when the gem is required.
68
- JAMF_ZEITWERK_EAGER_LOAD_FILE = Pathname.new('/tmp/ruby-jss-zeitwerk-eager-load')
57
+ require 'jamf/zeitwerk_config'
69
58
 
70
59
  # the `Zeitwerk::Loader.for_gem` creates the loader object, and must
71
60
  # happen in this file, so we pass it into a method defined in
72
61
  # zeitwerk_config
73
- setup_zeitwerk_loader Zeitwerk::Loader.for_gem
62
+ JamfZeitwerkConfig.setup_zeitwerk_loader Zeitwerk::Loader.for_gem
74
63
 
75
64
  # Jamf, A Ruby module for interacting with the JAMF Pro Server via both of its REST APIs
76
65
  module Jamf
77
66
 
78
- def self.validate_ruby_version
79
- return if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new(MINIMUM_RUBY_VERSION)
80
-
81
- raise "Can't use ruby-jss #{Jamf::VERSION}, ruby itself must be version #{MINIMUM_RUBY_VERSION} or greater, this is ruby #{RUBY_VERSION}."
82
- end
83
-
84
- # Only look at the filesystem once.
85
- def self.verbose_loading?
86
- return @verbose_loading unless @verbose_loading.nil?
87
-
88
- @verbose_loading = JAMF_VERBOSE_LOADING_FILE.file?
89
- @verbose_loading ||= ENV.include? JAMF_VERBOSE_LOADING_ENV
90
- @verbose_loading
91
- end
92
-
93
- # rubocop: disable Style/StderrPuts
67
+ # Use the load_msg method defined for Zeitwerk
94
68
  def self.load_msg(msg)
95
- return unless verbose_loading?
96
-
97
- $stderr.puts msg
98
- end
99
- # rubocop: enable Style/StderrPuts
69
+ JamfZeitwerkConfig.load_msg msg
70
+ end
100
71
 
101
72
  # the single instance of our configuration object
102
73
  def self.config
@@ -113,11 +84,8 @@ module Jamf
113
84
 
114
85
  end # module Jamf
115
86
 
116
- # make sure we can run
117
- Jamf.validate_ruby_version
118
-
119
87
  # JSS module is now a synonym for Jamf module
120
88
  JSS = Jamf
121
89
 
122
- # testing zeitwerk loading
123
- eager_load_for_testing if JAMF_ZEITWERK_EAGER_LOAD_FILE.file?
90
+ # testing zeitwerk loading, the the desired file is present
91
+ JamfZeitwerkConfig.eager_load_for_testing
@@ -47,6 +47,9 @@ Want to test with a different version of ruby? Change the #! line of the `runtes
47
47
 
48
48
  - The individual tests are methods in classes defined in files in the 'tests' directory adjacent to this file.
49
49
  - In general, each class test a matching ruby-jss class, usually an APIObject (classic) or JPAPIResource (jamf pro).
50
+ - Shared code is in modules defined in the 'jamf_test' directory. See those files for more info. E.g.
51
+ - 'collection_tests.rb' defines common tests for all collection-resources
52
+ - 'prestage_tests.rb' defines common tests for 'computer_prestage' and 'mobile_device_prestage'
50
53
 
51
54
  **WARNING**: **DANGER DANGER** Be very careful about running these tests on your production Jamf Pro server!!!
52
55
 
data/test/bin/runtests CHANGED
@@ -29,6 +29,40 @@ require 'pathname'
29
29
  require 'getoptlong'
30
30
  require 'ruby-jss'
31
31
 
32
+ # Debug Trace support, Ideas from
33
+ # https://gist.github.com/bendilley/1453a555e981ed533f68
34
+ # and the other gist and stack overflow mentioned there.
35
+ ####################################
36
+
37
+ # Enable tracing to help debug stack level too deep errors
38
+ $do_tracing = false
39
+
40
+ # set this to true to save the call traces to a file
41
+ $save_trace = false
42
+
43
+ # the file to hold the traces
44
+ $trace_out = open('/tmp/ruby-jss-tests-trace.txt', 'w')
45
+
46
+ # the max call-stack depth - adjust this to help catch and
47
+ # debug SystemStackError exceptions
48
+ $trace_max_call_stack_depth = 1000
49
+
50
+ # the tracing proc
51
+ set_trace_func proc { |event, file, line, id, _binding, classname|
52
+ if $do_tracing
53
+ begin
54
+ if event == 'call'
55
+ $trace_out.puts "#{file}:#{line} #{classname}##{id}" if $save_trace
56
+ raise 'MaxCallStackReached' if caller_locations.length > $trace_max_call_stack_depth
57
+ end
58
+ rescue => e
59
+ warn "ERROR: #{e.class}: #{e}"
60
+ e.backtrace.each { |l| warn "..#{l}" }
61
+ exit 1
62
+ end
63
+ end # if
64
+ }
65
+
32
66
  # app
33
67
  class App
34
68
 
@@ -62,8 +96,8 @@ class App
62
96
  @testsdir = @appdir + 'tests'
63
97
 
64
98
  @tests_to_run = ARGV.dup
65
- @tests_to_run = @testsdir.children.map { |c| c.basename.to_s }.sort if @tests_to_run .empty?
66
- @tests_to_run.delete_if { |t| t.start_with? '.'}
99
+ @tests_to_run = @testsdir.children.map { |c| c.basename.to_s }.sort if @tests_to_run.empty?
100
+ @tests_to_run.delete_if { |t| t.start_with? '.' }
67
101
 
68
102
  @minitest_opts = ['--verbose']
69
103
 
@@ -126,6 +160,7 @@ class App
126
160
 
127
161
  ###################################
128
162
  def run_tests
163
+ puts
129
164
  JamfTest.say "Starting tests of ruby-jss v#{Jamf::VERSION}, using ruby version #{RUBY_VERSION}"
130
165
  JamfTest.say "API Connection: #{Jamf.cnx}; Server running Jamf Pro #{Jamf.cnx.jamf_version}"
131
166
 
@@ -158,6 +193,7 @@ class App
158
193
  ###################################
159
194
  def show_help
160
195
  return false unless @show_help
196
+
161
197
  puts <<-USAGEBLURB
162
198
  Usage: #{File.basename __FILE__} [options] [spec [spec ...]]
163
199
 
@@ -209,6 +245,10 @@ if $PROGRAM_NAME == __FILE__
209
245
  app = App.new
210
246
  app.run
211
247
  exit 0
248
+ rescue SystemStackError
249
+ puts $!
250
+ puts caller[0..100]
251
+ exit 1
212
252
  rescue => e
213
253
  puts "ERROR #{e.class}: #{e}"
214
254
  puts e.backtrace
@@ -176,11 +176,11 @@ module JamfTest
176
176
  say "Ran #{collection_class}.all_ids"
177
177
  validate_array ids, item_class: id_class
178
178
 
179
-
180
179
  identifiers.each do |ident|
181
180
  next if ident == :id
182
181
 
183
182
  mth = ident.to_s.end_with?('s') ? "all_#{ident}es" : "all_#{ident}s"
183
+ say "Testing #{collection_class}.#{mth}"
184
184
  collection_class.send mth
185
185
  say "Ran #{collection_class}.#{mth}"
186
186
  end
@@ -196,7 +196,6 @@ module JamfTest
196
196
  cached_ids = collection_class.all_ids cached_list: @cached_all
197
197
  say "Ran #{collection_class}.all_ids cached_list: @cached_all"
198
198
  validate_array cached_ids, item_class: id_class
199
-
200
199
  end
201
200
 
202
201
  #################
@@ -223,7 +222,6 @@ module JamfTest
223
222
 
224
223
  validate_hash ids_to_other
225
224
  validate_array ids_to_other.keys, item_class: id_class
226
-
227
225
  end
228
226
 
229
227
  ################
@@ -250,7 +248,6 @@ module JamfTest
250
248
 
251
249
  validate_hash ids_to_other
252
250
  validate_array ids_to_other.keys, item_class: id_class
253
-
254
251
  end
255
252
 
256
253
  ################
@@ -265,7 +262,9 @@ module JamfTest
265
262
  id, other = ids_to_other_ident.to_a.sample
266
263
 
267
264
  valid_id = collection_class.valid_id other
268
- raise "#{collection_class} id #{id}, has #{other_ident} '#{other}', but calling .valid_id('#{other}') returned id: #{valid_id}" unless id.to_s == valid_id.to_s
265
+ unless id.to_s == valid_id.to_s
266
+ raise "#{collection_class} id #{id}, has #{other_ident} '#{other}', but calling .valid_id('#{other}') returned id: #{valid_id}"
267
+ end
269
268
 
270
269
  say "#{collection_class}.valid_id for #{other_ident} '#{other}' returned the correct id"
271
270
  end
@@ -284,13 +283,11 @@ module JamfTest
284
283
  ########### Object Tests
285
284
  ####################################
286
285
 
287
-
288
286
  # override this if the class requires more than 'name' with .create
289
287
  ################
290
288
  def create_new
291
289
  @unsaved_new_object = collection_class.create name: test_object_name
292
290
  say "Created new #{collection_class}, to be saved in Jamf."
293
-
294
291
  end
295
292
 
296
293
  # override this if your class can take more than 'name'