ruby-jss 2.0.0a10 → 2.0.0b3

Sign up to get free protection for your applications and to get access to all the features.
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.