ruby-jss 2.0.0a10 → 2.0.0b3

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 (502) hide show
  1. checksums.yaml +4 -4
  2. data/README-2.0.0.md +53 -32
  3. data/lib/jamf/api/classic/api_objects/computer.rb +18 -15
  4. data/lib/jamf/api/classic/api_objects/computer_group.rb +1 -0
  5. data/lib/jamf/api/classic/api_objects/criteriable.rb +1 -1
  6. data/lib/jamf/api/classic/api_objects/mdm.rb +40 -24
  7. data/lib/jamf/api/classic/api_objects/mobile_device.rb +8 -12
  8. data/lib/jamf/api/classic/api_objects/mobile_device_application.rb +35 -6
  9. data/lib/jamf/api/classic/api_objects/policy.rb +8 -17
  10. data/lib/jamf/api/classic/api_objects/script.rb +1 -1
  11. data/lib/jamf/api/classic/base_classes/advanced_search.rb +5 -5
  12. data/lib/jamf/api/classic/base_classes/api_object.rb +26 -26
  13. data/lib/jamf/api/classic/base_classes/extension_attribute.rb +2 -2
  14. data/lib/jamf/api/classic/base_classes/group.rb +57 -40
  15. data/lib/jamf/api/connection/attributes.rb +51 -4
  16. data/lib/jamf/api/connection/classic_api.rb +2 -1
  17. data/lib/jamf/api/connection/connect.rb +49 -2
  18. data/lib/jamf/api/connection/constants.rb +6 -0
  19. data/lib/jamf/api/connection/jamf_pro_api.rb +6 -2
  20. data/lib/jamf/api/connection/token.rb +10 -3
  21. data/lib/jamf/api/connection.rb +1 -1
  22. data/lib/jamf/api/jamf_pro/api_objects/inventory_preload_record.rb +9 -1
  23. data/lib/jamf/api/jamf_pro/base_classes/oapi_object.rb +21 -9
  24. data/lib/jamf/api/jamf_pro/mixins/macos_managed_updates.rb +178 -0
  25. data/lib/jamf/api/jamf_pro/mixins/prestage.rb +17 -7
  26. data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_preview_search_results.rb +2 -3
  27. data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_v2_search_results.rb +1 -2
  28. data/lib/jamf/api/jamf_pro/oapi_schemas/account.rb +1 -2
  29. data/lib/jamf/api/jamf_pro/oapi_schemas/{access_groups_search_results.rb → account_driven_user_enrollment_session_token_settings.rb} +14 -14
  30. data/lib/jamf/api/jamf_pro/oapi_schemas/account_group.rb +1 -2
  31. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences.rb +1 -2
  32. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v1.rb +1 -2
  33. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v4.rb +1 -2
  34. data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_history.rb +1 -2
  35. data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_history_search_results.rb +1 -2
  36. data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_summary.rb +1 -2
  37. data/lib/jamf/api/jamf_pro/oapi_schemas/admin_account.rb +1 -2
  38. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search.rb +1 -2
  39. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_criteria_choices.rb +1 -2
  40. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_search_results.rb +1 -2
  41. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search.rb +1 -2
  42. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search_search_results.rb +1 -2
  43. data/lib/jamf/api/jamf_pro/oapi_schemas/android_details.rb +1 -2
  44. data/lib/jamf/api/jamf_pro/oapi_schemas/api_error.rb +1 -2
  45. data/lib/jamf/api/jamf_pro/oapi_schemas/api_error_cause.rb +1 -2
  46. data/lib/jamf/api/jamf_pro/oapi_schemas/app_analytics_setting.rb +1 -2
  47. data/lib/jamf/api/jamf_pro/oapi_schemas/app_dynamics_config.rb +1 -2
  48. data/lib/jamf/api/jamf_pro/oapi_schemas/app_path.rb +1 -2
  49. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field.rb +1 -2
  50. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field_search_results.rb +1 -2
  51. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_settings.rb +1 -2
  52. data/lib/jamf/api/jamf_pro/oapi_schemas/apple_tv_details.rb +1 -2
  53. data/lib/jamf/api/jamf_pro/oapi_schemas/application_attributes.rb +1 -2
  54. data/lib/jamf/api/jamf_pro/oapi_schemas/application_configuration.rb +1 -2
  55. data/lib/jamf/api/jamf_pro/oapi_schemas/assign_remove_profile_response_sync_state.rb +1 -2
  56. data/lib/jamf/api/jamf_pro/oapi_schemas/attributes.rb +1 -2
  57. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account.rb +1 -2
  58. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account_v1.rb +1 -2
  59. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token.rb +1 -2
  60. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token_v1.rb +1 -2
  61. data/lib/jamf/api/jamf_pro/oapi_schemas/authorization.rb +1 -2
  62. data/lib/jamf/api/jamf_pro/oapi_schemas/authorization_v1.rb +1 -2
  63. data/lib/jamf/api/jamf_pro/oapi_schemas/{deprecated_configuration_search_results.rb → available_updates.rb} +12 -20
  64. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_ad_migration_report_process_status.rb +1 -2
  65. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_ad_migration_report_request.rb +1 -2
  66. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration.rb +1 -2
  67. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_request.rb +1 -2
  68. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_update.rb +1 -2
  69. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_mappings.rb +1 -2
  70. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration.rb +1 -2
  71. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_request.rb +1 -2
  72. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_update.rb +1 -2
  73. data/lib/jamf/api/jamf_pro/oapi_schemas/branding_image_url.rb +1 -2
  74. data/lib/jamf/api/jamf_pro/oapi_schemas/building.rb +1 -2
  75. data/lib/jamf/api/jamf_pro/oapi_schemas/building_search_results.rb +1 -2
  76. data/lib/jamf/api/jamf_pro/oapi_schemas/cache_settings.rb +1 -2
  77. data/lib/jamf/api/jamf_pro/oapi_schemas/categories_search_results.rb +1 -2
  78. data/lib/jamf/api/jamf_pro/oapi_schemas/category.rb +1 -2
  79. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_details.rb +1 -4
  80. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_identity_v2.rb +1 -2
  81. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_key.rb +1 -2
  82. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_record.rb +1 -2
  83. data/lib/jamf/api/jamf_pro/oapi_schemas/classic_ldap_mappings.rb +1 -2
  84. data/lib/jamf/api/jamf_pro/oapi_schemas/client_check_in_v2.rb +1 -2
  85. data/lib/jamf/api/jamf_pro/oapi_schemas/client_check_in_v3.rb +1 -2
  86. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common.rb +1 -2
  87. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_request.rb +1 -2
  88. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_response.rb +1 -2
  89. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_pool_statistics.rb +1 -6
  90. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_status.rb +1 -2
  91. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore.rb +1 -3
  92. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore_file.rb +1 -4
  93. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_request.rb +1 -6
  94. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_response.rb +1 -9
  95. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_request.rb +1 -2
  96. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_response.rb +1 -2
  97. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_update.rb +1 -2
  98. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_application.rb +2 -3
  99. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_attachment.rb +2 -3
  100. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_certificate.rb +26 -3
  101. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_configuration_profile.rb +2 -3
  102. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching.rb +2 -3
  103. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_alert.rb +1 -2
  104. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_cache_detail.rb +1 -2
  105. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error.rb +1 -2
  106. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error_user_info.rb +1 -2
  107. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent.rb +1 -2
  108. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_alert.rb +1 -2
  109. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_capabilities.rb +1 -2
  110. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_details.rb +1 -2
  111. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_local_network.rb +1 -2
  112. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk.rb +1 -2
  113. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk_encryption.rb +2 -3
  114. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_extension_attribute.rb +2 -3
  115. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_font.rb +2 -3
  116. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general.rb +2 -3
  117. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general_update.rb +1 -2
  118. data/lib/jamf/api/jamf_pro/oapi_schemas/{mdm_signing_certificate.rb → computer_group.rb} +18 -24
  119. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware.rb +2 -3
  120. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware_update.rb +1 -2
  121. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_ibeacon.rb +2 -3
  122. data/lib/jamf/api/jamf_pro/oapi_schemas/{computer_inventory_response.rb → computer_inventory.rb} +4 -5
  123. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_preferences.rb +1 -2
  124. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_settings.rb +1 -2
  125. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_recovery_lock_password_response.rb +1 -2
  126. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_search_results.rb +4 -5
  127. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_update_request.rb +1 -2
  128. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_licensed_software.rb +2 -3
  129. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_local_user_account.rb +2 -3
  130. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_location.rb +1 -2
  131. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_mdm_capability.rb +1 -2
  132. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system.rb +2 -3
  133. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system_update.rb +1 -2
  134. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_overview.rb +1 -2
  135. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_package_receipts.rb +2 -3
  136. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition.rb +1 -2
  137. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_encryption.rb +1 -2
  138. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_file_vault2_state.rb +1 -2
  139. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_plugin.rb +2 -3
  140. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage.rb +1 -2
  141. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results.rb +1 -2
  142. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results_v2.rb +1 -2
  143. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_v2.rb +1 -2
  144. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_printer.rb +2 -3
  145. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_purchase.rb +2 -3
  146. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_remote_management.rb +1 -2
  147. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_section.rb +1 -2
  148. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_security.rb +2 -3
  149. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_service.rb +2 -3
  150. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_software_update.rb +2 -3
  151. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_storage.rb +2 -3
  152. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_user_and_location.rb +2 -3
  153. data/lib/jamf/api/jamf_pro/oapi_schemas/computers_search_results.rb +1 -2
  154. data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_profile.rb +1 -2
  155. data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_search_results.rb +1 -2
  156. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_candidate_request.rb +1 -2
  157. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_response.rb +1 -2
  158. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_status_response.rb +1 -2
  159. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_update_request.rb +1 -2
  160. data/lib/jamf/api/jamf_pro/oapi_schemas/country.rb +1 -2
  161. data/lib/jamf/api/jamf_pro/oapi_schemas/country_codes.rb +1 -2
  162. data/lib/jamf/api/jamf_pro/oapi_schemas/create_path.rb +1 -2
  163. data/lib/jamf/api/jamf_pro/oapi_schemas/csa_token.rb +1 -2
  164. data/lib/jamf/api/jamf_pro/oapi_schemas/current_account.rb +1 -2
  165. data/lib/jamf/api/jamf_pro/oapi_schemas/current_authorization.rb +1 -2
  166. data/lib/jamf/api/jamf_pro/oapi_schemas/data_roaming_setting.rb +1 -2
  167. data/lib/jamf/api/jamf_pro/oapi_schemas/database_password.rb +1 -2
  168. data/lib/jamf/api/jamf_pro/oapi_schemas/day_of_week.rb +1 -2
  169. data/lib/jamf/api/jamf_pro/oapi_schemas/delete_user_command.rb +1 -2
  170. data/lib/jamf/api/jamf_pro/oapi_schemas/department.rb +1 -2
  171. data/lib/jamf/api/jamf_pro/oapi_schemas/departments_search_results.rb +1 -2
  172. data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task.rb +1 -2
  173. data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task_search_results.rb +1 -2
  174. data/lib/jamf/api/jamf_pro/oapi_schemas/device_communication_settings.rb +1 -2
  175. data/lib/jamf/api/jamf_pro/oapi_schemas/device_compliance_information.rb +1 -2
  176. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device.rb +1 -2
  177. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device_search_results.rb +1 -2
  178. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_body.rb +1 -2
  179. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_response.rb +1 -2
  180. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance.rb +1 -2
  181. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_search_results.rb +1 -2
  182. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_sync_status.rb +1 -2
  183. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage.rb +1 -2
  184. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage_v2.rb +1 -2
  185. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_token.rb +1 -2
  186. data/lib/jamf/api/jamf_pro/oapi_schemas/diagnostic_submission_setting.rb +1 -2
  187. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook.rb +1 -2
  188. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_exclusions.rb +1 -2
  189. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_limitations.rb +1 -2
  190. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_scope.rb +1 -2
  191. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_search_results.rb +1 -2
  192. data/lib/jamf/api/jamf_pro/oapi_schemas/enable_lost_mode_command.rb +1 -2
  193. data/lib/jamf/api/jamf_pro/oapi_schemas/engage.rb +1 -2
  194. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_preview.rb +12 -6
  195. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_v2.rb +1 -2
  196. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization.rb +1 -2
  197. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_branding_settings.rb +1 -2
  198. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependencies.rb +1 -2
  199. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependency.rb +1 -2
  200. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_ldap_group_access.rb +1 -2
  201. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel.rb +1 -2
  202. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_ldap_auth.rb +1 -2
  203. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_list.rb +1 -2
  204. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_sso_auth.rb +1 -2
  205. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_text.rb +1 -2
  206. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results.rb +1 -2
  207. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results_v2.rb +1 -2
  208. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_v2.rb +3 -3
  209. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_method.rb +1 -2
  210. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_process_text_object.rb +5 -6
  211. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_settings_v2.rb +1 -2
  212. data/lib/jamf/api/jamf_pro/oapi_schemas/export_field.rb +1 -2
  213. data/lib/jamf/api/jamf_pro/oapi_schemas/export_parameters.rb +5 -2
  214. data/lib/jamf/api/jamf_pro/oapi_schemas/extension_attribute.rb +1 -2
  215. data/lib/jamf/api/jamf_pro/oapi_schemas/extension_attribute_v2.rb +1 -2
  216. data/lib/jamf/api/jamf_pro/oapi_schemas/external_recipient.rb +1 -2
  217. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment.rb +1 -2
  218. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_delete.rb +1 -2
  219. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_v2.rb +1 -2
  220. data/lib/jamf/api/jamf_pro/oapi_schemas/filter.rb +1 -2
  221. data/lib/jamf/api/jamf_pro/oapi_schemas/font_path.rb +1 -2
  222. data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage.rb +1 -2
  223. data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage_v2.rb +1 -2
  224. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization.rb +1 -2
  225. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel.rb +1 -2
  226. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_ldap_auth.rb +1 -2
  227. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_sso_auth.rb +1 -2
  228. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_text.rb +1 -2
  229. data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage.rb +1 -2
  230. data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage_v2.rb +1 -2
  231. data/lib/jamf/api/jamf_pro/oapi_schemas/group_mappings.rb +1 -2
  232. data/lib/jamf/api/jamf_pro/oapi_schemas/group_membership.rb +2 -3
  233. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search.rb +1 -2
  234. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_request.rb +1 -4
  235. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_response.rb +1 -4
  236. data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results.rb +1 -6
  237. data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results_v1.rb +1 -2
  238. data/lib/jamf/api/jamf_pro/oapi_schemas/href_response.rb +3 -4
  239. data/lib/jamf/api/jamf_pro/oapi_schemas/icon_response.rb +1 -2
  240. data/lib/jamf/api/jamf_pro/oapi_schemas/id_and_name.rb +1 -2
  241. data/lib/jamf/api/jamf_pro/oapi_schemas/id_and_name_v2.rb +1 -2
  242. data/lib/jamf/api/jamf_pro/oapi_schemas/ids.rb +5 -2
  243. data/lib/jamf/api/jamf_pro/oapi_schemas/initialize.rb +1 -2
  244. data/lib/jamf/api/jamf_pro/oapi_schemas/initialize_v1.rb +1 -2
  245. data/lib/jamf/api/jamf_pro/oapi_schemas/install_package.rb +1 -2
  246. data/lib/jamf/api/jamf_pro/oapi_schemas/integer_wrapper.rb +1 -2
  247. data/lib/jamf/api/jamf_pro/oapi_schemas/internal_recipient.rb +1 -2
  248. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_information.rb +1 -2
  249. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_error.rb +1 -2
  250. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error.rb +1 -2
  251. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error_cause.rb +1 -2
  252. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_success.rb +1 -2
  253. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute.rb +1 -2
  254. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column.rb +1 -2
  255. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column_result.rb +1 -2
  256. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_invalid_csv_response.rb +1 -2
  257. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record.rb +1 -2
  258. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results.rb +1 -2
  259. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results_v2.rb +1 -2
  260. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_v2.rb +1 -2
  261. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_configuration.rb +1 -2
  262. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_search_results.rb +1 -2
  263. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_details.rb +1 -2
  264. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_details_v2.rb +1 -2
  265. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_application_response.rb +1 -2
  266. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_nation_credentials.rb +1 -2
  267. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_package_response.rb +1 -2
  268. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_information.rb +1 -2
  269. data/lib/jamf/api/jamf_pro/oapi_schemas/{enrollment_access_group.rb → jamf_pro_information_v2.rb} +35 -34
  270. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_server_url.rb +1 -2
  271. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_version.rb +1 -2
  272. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_protect_plan.rb +1 -2
  273. data/lib/jamf/api/jamf_pro/oapi_schemas/language_code.rb +5 -6
  274. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_request.rb +1 -2
  275. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_response.rb +1 -2
  276. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_update.rb +1 -2
  277. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group.rb +1 -2
  278. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group_search_results.rb +1 -2
  279. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_server.rb +1 -2
  280. data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile.rb +1 -2
  281. data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile_search_results.rb +1 -2
  282. data/lib/jamf/api/jamf_pro/oapi_schemas/locale.rb +1 -2
  283. data/lib/jamf/api/jamf_pro/oapi_schemas/location.rb +1 -2
  284. data/lib/jamf/api/jamf_pro/oapi_schemas/location_information.rb +1 -2
  285. data/lib/jamf/api/jamf_pro/oapi_schemas/location_information_v2.rb +1 -2
  286. data/lib/jamf/api/jamf_pro/oapi_schemas/location_v2.rb +1 -2
  287. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_configuration.rb +1 -2
  288. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_search_results.rb +1 -2
  289. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update.rb +28 -3
  290. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update_response.rb +1 -4
  291. data/lib/jamf/api/jamf_pro/oapi_schemas/markdown.rb +1 -2
  292. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_client_type.rb +1 -2
  293. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command.rb +1 -2
  294. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_client.rb +1 -2
  295. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_request.rb +1 -2
  296. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_state.rb +1 -2
  297. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_type.rb +1 -2
  298. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_mappings.rb +1 -2
  299. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_request.rb +1 -4
  300. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_response.rb +1 -4
  301. data/lib/jamf/api/jamf_pro/oapi_schemas/memcached_endpoints.rb +1 -2
  302. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device.rb +1 -2
  303. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_application.rb +1 -2
  304. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_attachment.rb +1 -2
  305. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_attachment_v2.rb +1 -2
  306. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate_v1.rb +1 -2
  307. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate_v2.rb +61 -3
  308. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details.rb +1 -2
  309. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_get_v2.rb +1 -2
  310. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_v2.rb +7 -2
  311. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_ebook.rb +1 -2
  312. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_extension_attribute_results.rb +1 -2
  313. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_group.rb +1 -2
  314. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage.rb +1 -2
  315. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name.rb +1 -2
  316. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name_v2.rb +1 -2
  317. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names.rb +1 -2
  318. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names_v2.rb +1 -2
  319. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results.rb +1 -2
  320. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results_v2.rb +1 -2
  321. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_v2.rb +1 -2
  322. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_params.rb +1 -2
  323. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_results.rb +1 -2
  324. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_results_v2.rb +1 -2
  325. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_v2.rb +1 -2
  326. data/lib/jamf/api/jamf_pro/oapi_schemas/network.rb +1 -2
  327. data/lib/jamf/api/jamf_pro/oapi_schemas/network_v2.rb +1 -2
  328. data/lib/jamf/api/jamf_pro/oapi_schemas/notification.rb +1 -2
  329. data/lib/jamf/api/jamf_pro/oapi_schemas/notification_type.rb +3 -3
  330. data/lib/jamf/api/jamf_pro/oapi_schemas/notification_v1.rb +1 -2
  331. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history.rb +1 -6
  332. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_note.rb +1 -6
  333. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_v1.rb +1 -2
  334. data/lib/jamf/api/jamf_pro/oapi_schemas/order_by.rb +1 -2
  335. data/lib/jamf/api/jamf_pro/oapi_schemas/package_manifest.rb +1 -2
  336. data/lib/jamf/api/jamf_pro/oapi_schemas/parent_app.rb +5 -5
  337. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_ids_on_dashboard.rb +1 -2
  338. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_attempt.rb +1 -2
  339. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_attempt_action.rb +1 -2
  340. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log.rb +1 -2
  341. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log_search_results.rb +1 -2
  342. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_on_dashboard.rb +1 -2
  343. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_summary.rb +1 -2
  344. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_version.rb +1 -2
  345. data/lib/jamf/api/jamf_pro/oapi_schemas/personal_hotspot_setting.rb +1 -2
  346. data/lib/jamf/api/jamf_pro/oapi_schemas/plan_search_results.rb +1 -2
  347. data/lib/jamf/api/jamf_pro/oapi_schemas/plugin_path.rb +1 -2
  348. data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties.rb +1 -2
  349. data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties_v1.rb +1 -2
  350. data/lib/jamf/api/jamf_pro/oapi_schemas/post_computer_prestage_v2.rb +1 -2
  351. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependencies.rb +1 -2
  352. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependency.rb +1 -2
  353. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment.rb +1 -2
  354. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment_v2.rb +1 -2
  355. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information.rb +1 -2
  356. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information_v2.rb +1 -2
  357. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope.rb +1 -2
  358. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment.rb +1 -2
  359. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment_v2.rb +1 -2
  360. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response.rb +1 -2
  361. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response_v2.rb +1 -2
  362. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_update.rb +1 -2
  363. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_v2.rb +1 -2
  364. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status.rb +1 -2
  365. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status_v2.rb +1 -2
  366. data/lib/jamf/api/jamf_pro/oapi_schemas/process_texts_search_results.rb +3 -4
  367. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_registration_request.rb +1 -2
  368. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_settings_response.rb +1 -2
  369. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_updatable_settings_request.rb +1 -2
  370. data/lib/jamf/api/jamf_pro/oapi_schemas/provisioning_profile.rb +1 -2
  371. data/lib/jamf/api/jamf_pro/oapi_schemas/purchasing.rb +1 -2
  372. data/lib/jamf/api/jamf_pro/oapi_schemas/purchasing_v2.rb +1 -2
  373. data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage.rb +1 -2
  374. data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage_v2.rb +1 -2
  375. data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage.rb +1 -2
  376. data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage_v2.rb +1 -2
  377. data/lib/jamf/api/jamf_pro/oapi_schemas/recalculation_results.rb +1 -2
  378. data/lib/jamf/api/jamf_pro/oapi_schemas/recipient.rb +1 -2
  379. data/lib/jamf/api/jamf_pro/oapi_schemas/recipients.rb +1 -2
  380. data/lib/jamf/api/jamf_pro/oapi_schemas/redeploy_jamf_management_framework_response.rb +1 -2
  381. data/lib/jamf/api/jamf_pro/oapi_schemas/reenrollment.rb +1 -2
  382. data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_response.rb +1 -2
  383. data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_search_results.rb +1 -2
  384. data/lib/jamf/api/jamf_pro/oapi_schemas/renew_mdm_profile_response.rb +1 -2
  385. data/lib/jamf/api/jamf_pro/oapi_schemas/restart_device_command.rb +1 -2
  386. data/lib/jamf/api/jamf_pro/oapi_schemas/retry_patch_policy_params.rb +1 -2
  387. data/lib/jamf/api/jamf_pro/oapi_schemas/{safelisted_apps.rb → safelisted_app.rb} +15 -11
  388. data/lib/jamf/api/jamf_pro/oapi_schemas/script.rb +1 -2
  389. data/lib/jamf/api/jamf_pro/oapi_schemas/scripts_search_results.rb +1 -2
  390. data/lib/jamf/api/jamf_pro/oapi_schemas/search_active_patch_history_params.rb +1 -2
  391. data/lib/jamf/api/jamf_pro/oapi_schemas/search_patch_policy_log_params.rb +1 -2
  392. data/lib/jamf/api/jamf_pro/oapi_schemas/security.rb +1 -2
  393. data/lib/jamf/api/jamf_pro/oapi_schemas/security_v2.rb +1 -2
  394. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_install_settings.rb +1 -2
  395. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_interaction_settings.rb +1 -2
  396. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_login_settings.rb +1 -2
  397. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_settings.rb +1 -2
  398. data/lib/jamf/api/jamf_pro/oapi_schemas/session.rb +1 -2
  399. data/lib/jamf/api/jamf_pro/oapi_schemas/session_candidate_request.rb +1 -2
  400. data/lib/jamf/api/jamf_pro/oapi_schemas/session_details.rb +1 -2
  401. data/lib/jamf/api/jamf_pro/oapi_schemas/session_details_search_results.rb +1 -2
  402. data/lib/jamf/api/jamf_pro/oapi_schemas/session_status.rb +1 -2
  403. data/lib/jamf/api/jamf_pro/oapi_schemas/set_recovery_lock_command.rb +1 -2
  404. data/lib/jamf/api/jamf_pro/oapi_schemas/settings_command.rb +1 -2
  405. data/lib/jamf/api/jamf_pro/oapi_schemas/shared_device_configuration.rb +1 -2
  406. data/lib/jamf/api/jamf_pro/oapi_schemas/signature.rb +1 -2
  407. data/lib/jamf/api/jamf_pro/oapi_schemas/site.rb +1 -2
  408. data/lib/jamf/api/jamf_pro/oapi_schemas/smart_search_criterion.rb +1 -2
  409. data/lib/jamf/api/jamf_pro/oapi_schemas/software_title_configuration.rb +1 -2
  410. data/lib/jamf/api/jamf_pro/oapi_schemas/software_title_patch_policy_summaries.rb +1 -2
  411. data/lib/jamf/api/jamf_pro/oapi_schemas/software_update_settings.rb +1 -2
  412. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore.rb +1 -2
  413. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_cert_parse_response.rb +1 -2
  414. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_details.rb +1 -2
  415. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_parse.rb +1 -2
  416. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response.rb +1 -2
  417. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response_with_details.rb +1 -2
  418. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_with_details.rb +1 -2
  419. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_metadata_url.rb +1 -2
  420. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_settings.rb +1 -2
  421. data/lib/jamf/api/jamf_pro/oapi_schemas/startup_status.rb +1 -2
  422. data/lib/jamf/api/jamf_pro/oapi_schemas/static_user_group.rb +1 -2
  423. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity.rb +1 -2
  424. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_certificate_upload.rb +1 -2
  425. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_create.rb +1 -2
  426. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_search_results.rb +1 -2
  427. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_update.rb +1 -2
  428. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_features.rb +1 -2
  429. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_request.rb +5 -5
  430. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_response.rb +5 -5
  431. data/lib/jamf/api/jamf_pro/oapi_schemas/time_frame.rb +1 -2
  432. data/lib/jamf/api/jamf_pro/oapi_schemas/time_zone.rb +1 -2
  433. data/lib/jamf/api/jamf_pro/oapi_schemas/tv_os_details.rb +9 -2
  434. data/lib/jamf/api/jamf_pro/oapi_schemas/udids.rb +1 -2
  435. data/lib/jamf/api/jamf_pro/oapi_schemas/update_apple_tv.rb +1 -2
  436. data/lib/jamf/api/jamf_pro/oapi_schemas/update_ios.rb +1 -2
  437. data/lib/jamf/api/jamf_pro/oapi_schemas/update_ios_v2.rb +1 -2
  438. data/lib/jamf/api/jamf_pro/oapi_schemas/update_mobile_device.rb +1 -2
  439. data/lib/jamf/api/jamf_pro/oapi_schemas/update_mobile_device_v2.rb +1 -2
  440. data/lib/jamf/api/jamf_pro/oapi_schemas/update_tv_os.rb +1 -2
  441. data/lib/jamf/api/jamf_pro/oapi_schemas/user_attributes.rb +1 -2
  442. data/lib/jamf/api/jamf_pro/oapi_schemas/user_mappings.rb +1 -2
  443. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search.rb +1 -2
  444. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_request.rb +1 -4
  445. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_response.rb +1 -4
  446. data/lib/jamf/api/jamf_pro/oapi_schemas/v1_site.rb +3 -3
  447. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_ca_record.rb +1 -2
  448. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record.rb +1 -2
  449. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record_search_results.rb +1 -2
  450. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_service_status.rb +1 -2
  451. data/lib/jamf/api/jamf_pro/oapi_schemas/verbose_package_deployment_response.rb +1 -2
  452. data/lib/jamf/api/jamf_pro/oapi_schemas/voice_roaming_setting.rb +1 -2
  453. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_content.rb +1 -2
  454. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location.rb +1 -2
  455. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_list_view.rb +1 -2
  456. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_patch.rb +1 -2
  457. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_post.rb +1 -2
  458. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_locations.rb +1 -2
  459. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription.rb +1 -2
  460. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription_base.rb +1 -2
  461. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscriptions.rb +1 -2
  462. data/lib/jamf/api/jamf_pro/oapi_schemas/vpp_admin_account.rb +1 -2
  463. data/lib/jamf/api/jamf_pro/oapi_schemas/vpp_token_subscription.rb +1 -2
  464. data/lib/jamf/api/jamf_pro/oapi_schemas/web_link.rb +1 -2
  465. data/lib/jamf/client/jamf_binary.rb +76 -77
  466. data/lib/jamf/client/jamf_helper.rb +245 -235
  467. data/lib/jamf/client/management_action.rb +63 -53
  468. data/lib/jamf/client.rb +3 -3
  469. data/lib/jamf/constants.rb +1 -1
  470. data/lib/jamf/deprecations/deprecated_api_connection_class.rb +29 -0
  471. data/lib/jamf/deprecations/deprecated_api_constant.rb +3 -1
  472. data/lib/jamf/deprecations/deprecated_config_constant.rb +3 -1
  473. data/lib/jamf/version.rb +1 -1
  474. data/lib/zeitwerk_config.rb +23 -17
  475. data/test/{README.md → README-TEST.md} +3 -0
  476. data/test/bin/runtests +42 -2
  477. data/test/lib/jamf_test/APITest.rb +33 -7
  478. data/test/lib/jamf_test/advanced_search.rb +40 -0
  479. data/test/lib/jamf_test/collection_tests.rb +8 -13
  480. data/test/lib/jamf_test/prestage_tests.rb +135 -0
  481. data/test/lib/jamf_test.rb +7 -1
  482. data/test/tests/advanced_computer_search.rb +36 -0
  483. data/test/tests/advanced_mobile_device_search.rb +36 -0
  484. data/test/tests/advanced_user_search.rb +36 -0
  485. data/test/tests/building.rb +41 -0
  486. data/test/tests/computer.rb +41 -0
  487. data/test/tests/computer_group.rb +132 -0
  488. data/test/tests/computer_prestage.rb +36 -0
  489. data/test/tests/department.rb +41 -0
  490. data/test/tests/inventory_preload_record.rb +2 -2
  491. data/test/tests/mobile_device.rb +41 -0
  492. data/test/tests/mobile_device_prestage.rb +37 -0
  493. data/test/tests/policy.rb +39 -50
  494. metadata +41 -53
  495. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_identity_v1.rb +0 -102
  496. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_request.rb +0 -92
  497. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_response.rb +0 -105
  498. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_update.rb +0 -92
  499. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_request.rb +0 -166
  500. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_response.rb +0 -163
  501. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_update.rb +0 -171
  502. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_settings.rb +0 -264
@@ -138,10 +138,23 @@ module Jamf
138
138
  # token this many seconds before it expires.
139
139
  # Must be >= Jamf::Connection::Token::MIN_REFRESH_BUFFER, which is the default
140
140
  #
141
- # @option params :pw_fallback [Boolean] If keep_alive, should the passwd be
141
+ # @option params :pw_fallback [Boolean] If keep_alive, should the passwd be
142
142
  # cached in memory and used to create a new token, if there are problems
143
143
  # with the normal token refresh process?
144
144
  #
145
+ # @option params :sticky_session [Boolean] Use a 'sticky session'? Default is false.
146
+ # The hostname of Jamf Cloud urls does not point to a single https server,
147
+ # but any node of a cluster. Those nodes often take time to see changes
148
+ # made in other node. Sometimes, its important to perform a series of API
149
+ # actions to the same node, to avoid sync-timing problems between node. Setting
150
+ # sticky_session to true will cause all communication for this Connection to go
151
+ # through the one specific node it first connected ith.
152
+ # This is only relevant to Jamf Cloud connections, and will raise an exception
153
+ # is used with on-prem Jamf Pro servers.
154
+ # NOTE: It is not always appropriate to use this feature, and inapproriate use
155
+ # may negatively impact server performance. For more info, see
156
+ # https://developer.jamf.com/developer-guide/docs/sticky-sessions-for-jamf-cloud
157
+ #
145
158
  # @return [String] connection description, the output of #to_s
146
159
  #
147
160
  #######################################################
@@ -185,12 +198,44 @@ module Jamf
185
198
  @c_cnx = create_classic_connection
186
199
  @jp_cnx = create_jp_connection
187
200
 
201
+ # set the connection objects to sticky if desired. enforce booleans
202
+ self.sticky_session = params[:sticky_session] ? true : false
203
+
188
204
  @connected = true
189
205
 
190
206
  to_s
191
207
  end # connect
192
208
  alias login connect
193
209
 
210
+ # If a sticky_session was requested when the connection was made, and
211
+ # we are connected to a jamf cloud server, the token's http response
212
+ # contains the cookie we need to send with every request to ensure a
213
+ # stickey session.
214
+ #################################
215
+ def enable_sticky_session(headers)
216
+ # commas separate the cookies
217
+ raw_cookies = headers[Jamf::Connection::SET_COOKIE_HEADER].split(/\s*,\s*/)
218
+
219
+ raw_cookies.each do |rc|
220
+ # semicolons separate the attributes of the cookie,
221
+ # with its name and value being the first pair.
222
+ cookie_data = rc.split(/\s*;\s*/).first
223
+
224
+ # attribute name and value are separated by '='
225
+ cookie_name, cookie_value = cookie_data.split('=')
226
+ next unless cookie_name == Jamf::Connection::STICKY_SESSION_COOKIE_NAME
227
+
228
+ @sticky_session_cookie = "#{Jamf::Connection::STICKY_SESSION_COOKIE_NAME}=#{cookie_value}"
229
+ jp_cnx.headers[Jamf::Connection::COOKIE_HEADER] = @sticky_session_cookie
230
+ c_cnx.headers[Jamf::Connection::COOKIE_HEADER] = @sticky_session_cookie
231
+ return @sticky_session_cookie
232
+ end
233
+ # be sure to return nil if there was no appropriate cookie,
234
+ # which means we aren't using Jamf Cloud
235
+
236
+ nil
237
+ end
238
+
194
239
  # raise exception if not connected, and make sure we're using
195
240
  # the current token
196
241
  def validate_connected(subcnx)
@@ -224,6 +269,8 @@ module Jamf
224
269
  @jp_base_url = nil
225
270
  @server_path = nil
226
271
  @token = nil
272
+ @sticky_session_cookie = nil
273
+ @sticky_session = nil
227
274
  @connected = false
228
275
  :disconnected
229
276
  end # disconnect
@@ -429,7 +476,7 @@ module Jamf
429
476
  token_params[:token_string] = params[:token] if type == :token_string
430
477
  token_params[:pw] = params[:pw] unless params[:pw].is_a? Symbol
431
478
 
432
- self.class::Token.new **token_params
479
+ self.class::Token.new(**token_params)
433
480
  end
434
481
 
435
482
  # Build the base URL for the API connection
@@ -99,6 +99,12 @@ module Jamf
99
99
  @connect_time
100
100
  ].freeze
101
101
 
102
+ SET_COOKIE_HEADER = 'set-cookie'.freeze
103
+
104
+ COOKIE_HEADER = 'Cookie'.freeze
105
+
106
+ STICKY_SESSION_COOKIE_NAME = 'APBALANCEID'.freeze
107
+
102
108
  end # module
103
109
 
104
110
  end # class
@@ -53,13 +53,17 @@ module Jamf
53
53
 
54
54
  # @param rsrc[String] the resource to get
55
55
  # (the part of the API url after the '/api/' )
56
- #
56
+
57
57
  # @return [Hash] the result of the get
58
58
  #######################################################
59
59
  def jp_get(rsrc)
60
60
  validate_connected @jp_cnx
61
- resp = @jp_cnx.get rsrc
61
+ resp = @jp_cnx.get(rsrc) do |req|
62
+ # Modify the request here if needed.
63
+ # puts "JPAPI Cookie is: #{req.headers['Cookie']}"
64
+ end
62
65
  @last_http_response = resp
66
+
63
67
  return resp.body if resp.success?
64
68
 
65
69
  raise Jamf::Connection::JamfProAPIError, resp
@@ -87,6 +87,7 @@ module Jamf
87
87
  # @return [String] The token data
88
88
  attr_reader :token
89
89
  alias token_string token
90
+ alias auth_token token
90
91
 
91
92
  # @return [URI] The base API url, e.g. https://myjamf.jamfcloud.com/
92
93
  attr_reader :base_url
@@ -112,6 +113,12 @@ module Jamf
112
113
  attr_reader :pw_fallback
113
114
  alias pw_fallback? pw_fallback
114
115
 
116
+ # @return [Faraday::Response] The response object from instantiating
117
+ # a new Token object by creating a new token or validating a token
118
+ # string. This is not updated when refreshing a token, only when
119
+ # calling Token.new
120
+ attr_reader :creation_http_response
121
+
115
122
  # @param params [Hash] The data for creating and maintaining the token
116
123
  #
117
124
  # @option params [String] :token_string An existing valid token string.
@@ -139,7 +146,6 @@ module Jamf
139
146
  #
140
147
  # @option params [Boolean] :verify_cert (see Connection#connect)
141
148
  #
142
- #
143
149
  ###########################################
144
150
  def initialize(**params)
145
151
  @valid = false
@@ -164,10 +170,11 @@ module Jamf
164
170
  #################################
165
171
  def init_from_pw
166
172
  resp = token_connection(NEW_TOKEN_RSRC).post
167
-
173
+
168
174
  if resp.success?
169
175
  parse_token_from_response resp
170
176
  @last_refresh = Time.now
177
+ @creation_http_response = resp
171
178
  elsif resp.status == 401
172
179
  raise Jamf::AuthenticationError, 'Incorrect name or password'
173
180
  else
@@ -184,6 +191,7 @@ module Jamf
184
191
  resp = token_connection(AUTH_RSRC, token: str).get
185
192
  raise Jamf::InvalidDataError, 'Token is not valid' unless resp.success?
186
193
 
194
+ @creation_http_response = resp
187
195
  @token = str
188
196
  @user = resp.body.dig :account, :username
189
197
 
@@ -348,7 +356,6 @@ module Jamf
348
356
  end
349
357
  alias keep_alive refresh
350
358
 
351
-
352
359
  # Make this token invalid
353
360
  #################################
354
361
  def invalidate
@@ -198,7 +198,7 @@ module Jamf
198
198
  def to_s
199
199
  return 'not connected' unless connected?
200
200
 
201
- if name.start_with? "#{user}@"
201
+ if name.to_s.start_with? "#{user}@"
202
202
  name
203
203
  else
204
204
  "#{user}@#{host}:#{port}, name: #{name}"
@@ -42,6 +42,7 @@ module Jamf
42
42
  #
43
43
  #
44
44
  class InventoryPreloadRecord < Jamf::OAPISchemas::InventoryPreloadRecordV2
45
+
45
46
  # Mix-Ins
46
47
  #####################################
47
48
  include Jamf::CollectionResource
@@ -109,6 +110,12 @@ module Jamf
109
110
  # Must define this when extending Filterable
110
111
  FILTER_KEYS = OAPI_PROPERTIES.keys - [:extensionAttributes]
111
112
 
113
+ DEVICE_TYPE_COMPUTER = 'Computer'.freeze
114
+
115
+ DEVICE_TYPE_MOBILE_DEV = 'Mobile Device'.freeze
116
+
117
+ DEVICE_TYPE_UNKNOWN = 'Unknown'.freeze
118
+
112
119
  # InvPreload Recs have a non-standard /history path
113
120
  def self.history_path(_id)
114
121
  'v2/inventory-preload/history'
@@ -128,7 +135,7 @@ module Jamf
128
135
  new_val
129
136
  end
130
137
 
131
- # remove an EA value
138
+ # remove an EA totally (vs setting its value to nil)
132
139
  def remove_ext_attr(ea_name)
133
140
  idx = extensionAttributes.index { |ea| ea.name == ea_name }
134
141
  extensionAttributes_delete_at idx if idx
@@ -158,6 +165,7 @@ module Jamf
158
165
  def history_path(_id)
159
166
  raise Jamf::UnsupportedError, 'InventoryPreloadRecords do not have individual change logs. Use Jamf::InventoryPreloadRecord.change_log'
160
167
  end
168
+
161
169
  end # class
162
170
 
163
171
  end # module
@@ -35,7 +35,6 @@ module Jamf
35
35
 
36
36
  include Comparable
37
37
 
38
-
39
38
  # Public Class Methods
40
39
  #####################################
41
40
 
@@ -49,7 +48,7 @@ module Jamf
49
48
  # and will cause Jamf::Resource.save to raise an error
50
49
  #
51
50
  def self.mutable?
52
- !singleton_class.ancestors.include? Jamf::Immutable
51
+ !singleton_class.ancestors.include? Jamf::Immutable
53
52
  end
54
53
 
55
54
  # An array of attribute names that are required when
@@ -60,6 +59,12 @@ module Jamf
60
59
  self::OAPI_PROPERTIES.select { |_attr, deets| deets[:required] }.keys
61
60
  end
62
61
 
62
+ # have we already parsed our OAPI_PROPERTIES? If so,
63
+ # we shoudn't do it again, an this can be used to check
64
+ def self.oapi_properties_parsed?
65
+ @oapi_properties_parsed
66
+ end
67
+
63
68
  # create getters and setters for subclasses of APIObject
64
69
  # based on their OAPI_PROPERTIES Hash.
65
70
  #
@@ -105,7 +110,6 @@ module Jamf
105
110
  # Private Class Methods
106
111
  #####################################
107
112
 
108
-
109
113
  # create a getter for an attribute, and any aliases needed
110
114
  ##############################
111
115
  def self.create_getters(attr_name, attr_def)
@@ -339,7 +343,6 @@ module Jamf
339
343
  # Constructor
340
344
  #####################################
341
345
 
342
-
343
346
  # Make an instance. Data comes from the API
344
347
  #
345
348
  # @param data[Hash] the data for constructing a new object.
@@ -371,7 +374,7 @@ module Jamf
371
374
  # Are objects of this class mutable?
372
375
  # @see the class method in OAPIObject
373
376
  def mutable?
374
- self.class.mutable?
377
+ self.class.mutable?
375
378
  end
376
379
 
377
380
  # a hash of all unsaved changes
@@ -393,6 +396,7 @@ module Jamf
393
396
 
394
397
  # skip those that don't have any changes
395
398
  next unless value.respond_to? :unsaved_changes?
399
+
396
400
  attr_changes = value.unsaved_changes
397
401
  next if attr_changes.empty?
398
402
 
@@ -427,7 +431,7 @@ module Jamf
427
431
  end
428
432
 
429
433
  # @return [Hash] The data to be sent to the API, as a Hash
430
- # to be converted to JSON by the Jamf::Connection
434
+ # to be converted to JSON before sending to the JPAPI
431
435
  #
432
436
  def to_jamf
433
437
  jamf_data = {}
@@ -438,6 +442,13 @@ module Jamf
438
442
  jamf_data
439
443
  end
440
444
 
445
+ # @return [String] the JSON to be sent to the API for this
446
+ # object
447
+ #
448
+ def to_json(*_args)
449
+ to_jamf.to_json
450
+ end
451
+
441
452
  # Print the JSON version of the to_jamf outout
442
453
  # mostly for debugging/troubleshooting
443
454
  def pretty_jamf_json
@@ -537,7 +548,7 @@ module Jamf
537
548
  parse_enum_value(api_value, attr_name, attr_def)
538
549
 
539
550
  # a Class value
540
- elsif attr_def[:class].instance_of? Class
551
+ elsif attr_def[:class].instance_of? Class
541
552
  attr_def[:class].new api_value
542
553
 
543
554
  # a :j_id value. See the docs for OAPI_PROPERTIES in Jamf::OAPIObject
@@ -556,12 +567,13 @@ module Jamf
556
567
  # @return (see parse_single_init_value)
557
568
  #
558
569
  def parse_enum_value(api_value, attr_name, attr_def)
559
- Jamf::Validate.in_enum api_value, enum: attr_def[:enum], msg: "#{api_value} is not in the allowed values for attribute #{attr_name}. Must be one of: #{attr_def[:enum].join ', '}"
570
+ Jamf::Validate.in_enum api_value, enum: attr_def[:enum],
571
+ msg: "#{api_value} is not in the allowed values for attribute #{attr_name}. Must be one of: #{attr_def[:enum].join ', '}"
560
572
  end
561
573
 
562
574
  # call to_jamf on a single value if it knows that method
563
575
  #
564
- def single_to_jamf(raw_value, attr_def)
576
+ def single_to_jamf(raw_value, _attr_def)
565
577
  raw_value.respond_to?(:to_jamf) ? raw_value.to_jamf : raw_value
566
578
  end
567
579
 
@@ -0,0 +1,178 @@
1
+ # Copyright 2022 Pixar
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ # with the following modification; you may not use this file except in
5
+ # compliance with the Apache License and the following modification to it:
6
+ # Section 6. Trademarks. is deleted and replaced with:
7
+ #
8
+ # 6. Trademarks. This License does not grant permission to use the trade
9
+ # names, trademarks, service marks, or product names of the Licensor
10
+ # and its affiliates, except as required to comply with Section 4(c) of
11
+ # the License and to reproduce the content of the NOTICE file.
12
+ #
13
+ # You may obtain a copy of the Apache License at
14
+ #
15
+ # http://www.apache.org/licenses/LICENSE-2.0
16
+ #
17
+ # Unless required by applicable law or agreed to in writing, software
18
+ # distributed under the Apache License with the above modification is
19
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ # KIND, either express or implied. See the Apache License for the specific
21
+ # language governing permissions and limitations under the Apache License.
22
+ #
23
+ #
24
+
25
+ module Jamf
26
+
27
+ # This module should be mixed in to Jamf::Computer and Jamf::ComputerGroup
28
+ #
29
+ # It provides access to the macos-managed-software-updates JPAPI resource for
30
+ # managed OS update commands to managed macs running Big Sur or higher.
31
+ #
32
+ module MacOSManagedUpdates
33
+
34
+ # when this module is included, also extend our Class Methods
35
+ def self.included(includer)
36
+ Jamf.load_msg "--> #{includer} is including Jamf::MacOSManagedUpdates"
37
+ includer.extend(ClassMethods)
38
+ end
39
+
40
+ # These resources in the Jamf Pro API can be used to send Managed macOS
41
+ # updates to clients running Big Sur or higher
42
+ MANAGED_SW_UPDATES_RSRC = 'v1/macos-managed-software-updates'
43
+
44
+ # GETting this resource provides a list of available OS versions
45
+ MANAGED_SW_UPDATES_AVAILABLE_VERSIONS_RSRC = "#{MANAGED_SW_UPDATES_RSRC}/available-updates"
46
+
47
+ # POSTing JSON data to this resource will send the MDM commands to install os updates
48
+ # For details about the data to send, see
49
+ # https://developer.jamf.com/jamf-pro/reference/post_v1-macos-managed-software-updates-send-updates
50
+ MANAGED_SW_UPDATES_SEND_UPDATES_RSRC = "#{MANAGED_SW_UPDATES_RSRC}/send-updates"
51
+
52
+ # These are the options available in Jamf::OAPISchemas::MacOsManagedSoftwareUpdate::UPDATE_ACTION_OPTIONS
53
+ DOWNLOAD_AND_INSTALL = 'DOWNLOAD_AND_INSTALL'
54
+ DOWNLOAD_ONLY = 'DOWNLOAD_ONLY'
55
+
56
+ # Class Methods
57
+ #####################################
58
+ module ClassMethods
59
+
60
+ # when this module is included, also extend our Class Methods
61
+ def self.extended(extender)
62
+ Jamf.load_msg "--> #{extender} is extending Jamf::MacOSManagedUpdates::ClassMethods"
63
+ end
64
+
65
+ # get the list of available OS versions
66
+ #
67
+ # @return [Array<String>]
68
+ ###################
69
+ def available_os_updates(cnx: Jamf.cnx)
70
+ data = cnx.jp_get(MANAGED_SW_UPDATES_AVAILABLE_VERSIONS_RSRC)
71
+ Jamf::OAPISchemas::AvailableUpdates.new(data).availableUpdates
72
+ end
73
+
74
+ # Send the os update command to target Computers or a ComputerGroup
75
+ #
76
+ # @param updateAction [String] Required. 'DOWNLOAD_AND_INSTALL' or 'DOWNLOAD_ONLY'
77
+ #
78
+ # @param deviceIds [String, Integer, Array<String, Integer>] Identifiers for the
79
+ # computer targets. Required if no groupId is given.
80
+ #
81
+ # @param groupId [String, Integer] Identifier for the computer group target.
82
+ # Requied if no deviceIDs are given.
83
+ #
84
+ # @param maxDeferrals [Integer] Allow users to defer the update the provided number
85
+ # of times before macOS forces the update. If a value is provided, the Software
86
+ # Update will use the InstallLater install action. MaxDeferral is ignored if using the
87
+ # DOWNLOAD_ONLY updateAction.
88
+ #
89
+ # @param version [String] The OS version to install. If no value is provided, the
90
+ # version will default to latest version based on device eligibility.
91
+ #
92
+ # @param skipVersionVerification [Boolean] Should the specified version be installed
93
+ # even it it isn't applicable to this machine? If no value is provided, will default to false.
94
+ # If true, the specified version will be forced to complete DownloadAndInstall
95
+ # install action.
96
+ #
97
+ # @param applyMajorUpdate [Boolean] Available only when updating to the latest version
98
+ # based on device eligibility. Defaults to false. If false the calculated latest version
99
+ # will only include minor version updates. If a value is provided, the calculated latest
100
+ # version will include minor and major version updates.
101
+ #
102
+ # @param forceRestart [Boolean] Will default to false. Can only be true if updateAction
103
+ # is DOWNLOAD_AND_INSTALLn and the devices the command is sent to are on macOs 11 or higher.
104
+ # If true, the DownloadAndInstall action is performed, a restart will be forced.
105
+ # MaxDeferral will be ignored if true.
106
+ #
107
+ # @param cnx [Jamf::Connection] The API connection to use. Defaults to Jamf.cnx
108
+ #
109
+ # @return [Jamf::OAPISchemas::MacOsManagedSoftwareUpdateResponse]
110
+ ########################
111
+ def send_managed_os_update(updateAction:, deviceIds: nil, groupId: nil, maxDeferrals: nil, version: nil, skipVersionVerification: false, applyMajorUpdate: false, forceRestart: false, cnx: Jamf.cnx)
112
+ if self == Jamf::Computer
113
+ raise ArgumentError, 'Must provide one or more deviceIds' unless deviceIds
114
+ elsif self == Jamf::ComputerGroup
115
+ raise ArgumentError, 'Must provide a groupId' unless groupId
116
+ else
117
+ raise Jamf::UnsupportedError, 'This method is only available for Jamf::Computer and Jamf::ComputerGroup'
118
+ end
119
+
120
+ if version
121
+ available_versions = available_os_updates
122
+ raise ArgumentError, "Invalid version, must be one of: #{available_versions.join ', '}" unless available_versions.include? version
123
+ end
124
+
125
+ if deviceIds
126
+ deviceIds = [deviceIds] unless deviceIds.is_a?(Array)
127
+ deviceIds.map! { |id| valid_id id }
128
+ end
129
+ groupId = valid_id groupId if groupId
130
+
131
+ data = {}
132
+ # ids in the JPAPI are string containing integers
133
+ data[:deviceIds] = deviceIds.map(&:to_s) if deviceIds
134
+ data[:groupId] = groupId.to_s if groupId
135
+
136
+ data[:maxDeferrals] = maxDeferrals if maxDeferrals
137
+ data[:version] = version if version
138
+ data[:skipVersionVerification] = skipVersionVerification if skipVersionVerification
139
+ data[:applyMajorUpdate] = applyMajorUpdate if applyMajorUpdate
140
+ data[:updateAction] = updateAction if updateAction
141
+ data[:forceRestart] = forceRestart if forceRestart
142
+
143
+ payload = Jamf::OAPISchemas::MacOsManagedSoftwareUpdate.new(data).to_json
144
+
145
+ result = cnx.jp_post MANAGED_SW_UPDATES_SEND_UPDATES_RSRC, payload
146
+ Jamf::OAPISchemas::MacOsManagedSoftwareUpdateResponse.new result
147
+ end
148
+
149
+ end # module ClassMethods
150
+
151
+ # Instance Methods
152
+ ######################################
153
+
154
+ # Send a managed update command to an instance of Computer or ComputerGroup.
155
+ # This just calls the class method of the same name.
156
+ #
157
+ # @see MacOSManagedUpdates.send_managed_os_update
158
+ #
159
+ def send_managed_os_update(updateAction:, maxDeferrals: nil, version: nil, skipVersionVerification: false, applyMajorUpdate: false, forceRestart: false, cnx: Jamf.cnx)
160
+ deviceIds = is_a?(Jamf::Computer) ? @id : nil
161
+ groupId = is_a?(Jamf::Computer) ? nil : @id
162
+
163
+ self.class.send_managed_os_update(
164
+ deviceIds: deviceIds,
165
+ groupId: groupId,
166
+ maxDeferrals: maxDeferrals,
167
+ version: version,
168
+ skipVersionVerification: skipVersionVerification,
169
+ applyMajorUpdate: applyMajorUpdate,
170
+ forceRestart: forceRestart,
171
+ updateAction: updateAction,
172
+ cnx: @cnx
173
+ )
174
+ end
175
+
176
+ end # module MacOSManagedUpdates
177
+
178
+ end # module Jamf
@@ -139,6 +139,11 @@ module Jamf
139
139
  # Is the given serialNumber assigned to any prestage, or to the
140
140
  # given prestage if a prestage is specified?
141
141
  #
142
+ # This uses .serials_by_prestage_id, the class-level scope path which
143
+ # gets a hash of all assigned SNS => the id of the prestage they are
144
+ # assigned to. The instance#assigned? method uses a different path
145
+ # which returnds more data in an OAPI object.
146
+ #
142
147
  # NOTE: If a serial number isn't assigned to any prestage, it may really be
143
148
  # unassigned or it may not exist in your ADE. To see if a SN exists in one
144
149
  # of your Device Enrollment instances, use Jamf::DeviceEnrollment.include?
@@ -269,6 +274,8 @@ module Jamf
269
274
 
270
275
  # The scope data for this prestage
271
276
  #
277
+ # TODO: retain this caching?
278
+ #
272
279
  # @param refresh[Boolean] reload fromthe API?
273
280
  #
274
281
  # @return [PrestageScope]
@@ -278,6 +285,8 @@ module Jamf
278
285
  return @scope if @scope
279
286
 
280
287
  @scope = INSTANCE_SCOPE_OBJECT.new @cnx.get(scope_path)
288
+ # TODO: is this the best way to deal with fetching a scope that
289
+ # is more updated than the rest of the object?
281
290
  unless @scope.versionLock == @versionLock
282
291
  raise Jamf::VersionLockError, "The #{self.class} '#{name}' has been modified since it was fetched. Please refetch and try again"
283
292
  end
@@ -286,12 +295,18 @@ module Jamf
286
295
  end
287
296
 
288
297
  # @return [Array<String>] the serialnumbers assigned to this prestage
289
- def assigned_sns
290
- scope.assignments.map(&:serialNumber)
298
+ def assigned_sns(refresh: false)
299
+ return @assigned_sns if @assigned_sns
300
+
301
+ @assigned_sns = nil if refresh
302
+ @assigned_sns = scope.assignments.map(&:serialNumber)
291
303
  end
292
304
 
293
305
  # Is this SN assigned to this prestage?
294
306
  #
307
+ # This method uses the instance's scope object, from a different API
308
+ # path than the class-level .assigned? method.
309
+ #
295
310
  # @param sn[String] the sn to look for
296
311
  #
297
312
  # @return [Boolean]
@@ -336,11 +351,6 @@ module Jamf
336
351
  @scope_path ||= "#{get_path}/#{SCOPE_PATH}"
337
352
  end
338
353
 
339
- def scope
340
- data = @cnx.jp_get(scope_path)
341
- INSTANCE_SCOPE_OBJECT.new **data
342
- end
343
-
344
354
  end # class
345
355
 
346
356
  end # module
@@ -20,7 +20,6 @@
20
20
  # KIND, either express or implied. See the Apache License for the specific
21
21
  # language governing permissions and limitations under the Apache License.
22
22
  #
23
- #
24
23
 
25
24
 
26
25
  module Jamf
@@ -36,7 +35,7 @@ module Jamf
36
35
  #
37
36
  #
38
37
  # This class was automatically genereated from the api/schema
39
- # URL path on a Jamf Pro server version 10.36.1-t1645562643
38
+ # URL path on a Jamf Pro server version 10.40.0-t1657115323
40
39
  #
41
40
  # This class may be used directly, e.g instances of other classes may
42
41
  # use instances of this class as one of their own properties/attributes.
@@ -58,7 +57,7 @@ module Jamf
58
57
  # Endpoints and Privileges:
59
58
  # API endpoints and HTTP operations that use this object
60
59
  # model, and the Jamf Pro privileges needed to access them.
61
- # - '/preview/enrollment/access-groups:GET' needs permissions:
60
+ # - '/v3/enrollment/access-groups:GET' needs permissions:
62
61
  # - Read User-Initiated Enrollment
63
62
  #
64
63
  #
@@ -20,7 +20,6 @@
20
20
  # KIND, either express or implied. See the Apache License for the specific
21
21
  # language governing permissions and limitations under the Apache License.
22
22
  #
23
- #
24
23
 
25
24
 
26
25
  module Jamf
@@ -36,7 +35,7 @@ module Jamf
36
35
  #
37
36
  #
38
37
  # This class was automatically genereated from the api/schema
39
- # URL path on a Jamf Pro server version 10.36.1-t1645562643
38
+ # URL path on a Jamf Pro server version 10.40.0-t1657115323
40
39
  #
41
40
  # This class may be used directly, e.g instances of other classes may
42
41
  # use instances of this class as one of their own properties/attributes.
@@ -20,7 +20,6 @@
20
20
  # KIND, either express or implied. See the Apache License for the specific
21
21
  # language governing permissions and limitations under the Apache License.
22
22
  #
23
- #
24
23
 
25
24
 
26
25
  module Jamf
@@ -36,7 +35,7 @@ module Jamf
36
35
  #
37
36
  #
38
37
  # This class was automatically genereated from the api/schema
39
- # URL path on a Jamf Pro server version 10.36.1-t1645562643
38
+ # URL path on a Jamf Pro server version 10.40.0-t1657115323
40
39
  #
41
40
  # This class may be used directly, e.g instances of other classes may
42
41
  # use instances of this class as one of their own properties/attributes.