ruby-jss 2.0.0a11 → 2.0.0b5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (498) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +1 -0
  3. data/README-2.0.0.md +59 -35
  4. data/README.md +227 -172
  5. data/lib/jamf/api/classic/api_objects/computer.rb +18 -15
  6. data/lib/jamf/api/classic/api_objects/computer_group.rb +1 -0
  7. data/lib/jamf/api/classic/api_objects/criteriable.rb +1 -1
  8. data/lib/jamf/api/classic/api_objects/distribution_point.rb +12 -50
  9. data/lib/jamf/api/classic/api_objects/mdm.rb +40 -24
  10. data/lib/jamf/api/classic/api_objects/mobile_device.rb +8 -12
  11. data/lib/jamf/api/classic/api_objects/mobile_device_application.rb +35 -6
  12. data/lib/jamf/api/classic/api_objects/patch_title.rb +14 -9
  13. data/lib/jamf/api/classic/api_objects/policy.rb +8 -17
  14. data/lib/jamf/api/classic/api_objects/script.rb +1 -1
  15. data/lib/jamf/api/classic/base_classes/advanced_search.rb +4 -4
  16. data/lib/jamf/api/classic/base_classes/api_object.rb +94 -35
  17. data/lib/jamf/api/classic/base_classes/extension_attribute.rb +2 -2
  18. data/lib/jamf/api/classic/base_classes/group.rb +57 -40
  19. data/lib/jamf/api/classic/base_classes/patch_source.rb +10 -5
  20. data/lib/jamf/api/connection/attributes.rb +51 -4
  21. data/lib/jamf/api/connection/classic_api.rb +2 -1
  22. data/lib/jamf/api/connection/connect.rb +49 -2
  23. data/lib/jamf/api/connection/constants.rb +6 -0
  24. data/lib/jamf/api/connection/jamf_pro_api.rb +6 -2
  25. data/lib/jamf/api/connection/token.rb +10 -3
  26. data/lib/jamf/api/connection.rb +1 -1
  27. data/lib/jamf/api/jamf_pro/api_objects/inventory_preload_record.rb +9 -1
  28. data/lib/jamf/api/jamf_pro/base_classes/oapi_object.rb +15 -9
  29. data/lib/jamf/api/jamf_pro/mixins/collection_resource.rb +8 -12
  30. data/lib/jamf/api/jamf_pro/mixins/macos_managed_updates.rb +178 -0
  31. data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_preview_search_results.rb +2 -3
  32. data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_v2_search_results.rb +1 -2
  33. data/lib/jamf/api/jamf_pro/oapi_schemas/account.rb +1 -2
  34. data/lib/jamf/api/jamf_pro/oapi_schemas/{access_groups_search_results.rb → account_driven_user_enrollment_session_token_settings.rb} +14 -14
  35. data/lib/jamf/api/jamf_pro/oapi_schemas/account_group.rb +1 -2
  36. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences.rb +1 -2
  37. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v1.rb +1 -2
  38. data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v4.rb +1 -2
  39. data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_history.rb +1 -2
  40. data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_history_search_results.rb +1 -2
  41. data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_summary.rb +1 -2
  42. data/lib/jamf/api/jamf_pro/oapi_schemas/admin_account.rb +1 -2
  43. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search.rb +1 -2
  44. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_criteria_choices.rb +1 -2
  45. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_search_results.rb +1 -2
  46. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search.rb +1 -2
  47. data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search_search_results.rb +1 -2
  48. data/lib/jamf/api/jamf_pro/oapi_schemas/android_details.rb +1 -2
  49. data/lib/jamf/api/jamf_pro/oapi_schemas/api_error.rb +1 -2
  50. data/lib/jamf/api/jamf_pro/oapi_schemas/api_error_cause.rb +1 -2
  51. data/lib/jamf/api/jamf_pro/oapi_schemas/app_analytics_setting.rb +1 -2
  52. data/lib/jamf/api/jamf_pro/oapi_schemas/app_dynamics_config.rb +1 -2
  53. data/lib/jamf/api/jamf_pro/oapi_schemas/app_path.rb +1 -2
  54. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field.rb +1 -2
  55. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field_search_results.rb +1 -2
  56. data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_settings.rb +1 -2
  57. data/lib/jamf/api/jamf_pro/oapi_schemas/apple_tv_details.rb +1 -2
  58. data/lib/jamf/api/jamf_pro/oapi_schemas/application_attributes.rb +1 -2
  59. data/lib/jamf/api/jamf_pro/oapi_schemas/application_configuration.rb +1 -2
  60. data/lib/jamf/api/jamf_pro/oapi_schemas/assign_remove_profile_response_sync_state.rb +1 -2
  61. data/lib/jamf/api/jamf_pro/oapi_schemas/attributes.rb +1 -2
  62. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account.rb +1 -2
  63. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account_v1.rb +1 -2
  64. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token.rb +1 -2
  65. data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token_v1.rb +1 -2
  66. data/lib/jamf/api/jamf_pro/oapi_schemas/authorization.rb +1 -2
  67. data/lib/jamf/api/jamf_pro/oapi_schemas/authorization_v1.rb +1 -2
  68. data/lib/jamf/api/jamf_pro/oapi_schemas/{deprecated_configuration_search_results.rb → available_updates.rb} +12 -20
  69. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_ad_migration_report_process_status.rb +1 -2
  70. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_ad_migration_report_request.rb +1 -2
  71. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration.rb +1 -2
  72. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_request.rb +1 -2
  73. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_update.rb +1 -2
  74. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_mappings.rb +1 -2
  75. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration.rb +1 -2
  76. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_request.rb +1 -2
  77. data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_update.rb +1 -2
  78. data/lib/jamf/api/jamf_pro/oapi_schemas/branding_image_url.rb +1 -2
  79. data/lib/jamf/api/jamf_pro/oapi_schemas/building.rb +1 -2
  80. data/lib/jamf/api/jamf_pro/oapi_schemas/building_search_results.rb +1 -2
  81. data/lib/jamf/api/jamf_pro/oapi_schemas/cache_settings.rb +1 -2
  82. data/lib/jamf/api/jamf_pro/oapi_schemas/categories_search_results.rb +1 -2
  83. data/lib/jamf/api/jamf_pro/oapi_schemas/category.rb +1 -2
  84. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_details.rb +1 -4
  85. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_identity_v2.rb +1 -2
  86. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_key.rb +1 -2
  87. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_record.rb +1 -2
  88. data/lib/jamf/api/jamf_pro/oapi_schemas/classic_ldap_mappings.rb +1 -2
  89. data/lib/jamf/api/jamf_pro/oapi_schemas/client_check_in_v2.rb +1 -2
  90. data/lib/jamf/api/jamf_pro/oapi_schemas/client_check_in_v3.rb +1 -2
  91. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common.rb +1 -2
  92. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_request.rb +1 -2
  93. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_response.rb +1 -2
  94. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_pool_statistics.rb +1 -6
  95. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_status.rb +1 -2
  96. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore.rb +1 -3
  97. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore_file.rb +1 -4
  98. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_request.rb +1 -6
  99. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_response.rb +1 -9
  100. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_request.rb +1 -2
  101. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_response.rb +1 -2
  102. data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_update.rb +1 -2
  103. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_application.rb +2 -3
  104. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_attachment.rb +2 -3
  105. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_certificate.rb +26 -3
  106. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_configuration_profile.rb +2 -3
  107. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching.rb +2 -3
  108. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_alert.rb +1 -2
  109. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_cache_detail.rb +1 -2
  110. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error.rb +1 -2
  111. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error_user_info.rb +1 -2
  112. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent.rb +1 -2
  113. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_alert.rb +1 -2
  114. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_capabilities.rb +1 -2
  115. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_details.rb +1 -2
  116. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_local_network.rb +1 -2
  117. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk.rb +1 -2
  118. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk_encryption.rb +2 -3
  119. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_extension_attribute.rb +2 -3
  120. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_font.rb +2 -3
  121. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general.rb +2 -3
  122. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general_update.rb +1 -2
  123. data/lib/jamf/api/jamf_pro/oapi_schemas/{mdm_signing_certificate.rb → computer_group.rb} +18 -24
  124. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware.rb +2 -3
  125. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware_update.rb +1 -2
  126. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_ibeacon.rb +2 -3
  127. data/lib/jamf/api/jamf_pro/oapi_schemas/{computer_inventory_response.rb → computer_inventory.rb} +4 -5
  128. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_preferences.rb +1 -2
  129. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_settings.rb +1 -2
  130. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_recovery_lock_password_response.rb +1 -2
  131. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_search_results.rb +4 -5
  132. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_update_request.rb +1 -2
  133. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_licensed_software.rb +2 -3
  134. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_local_user_account.rb +2 -3
  135. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_location.rb +1 -2
  136. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_mdm_capability.rb +1 -2
  137. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system.rb +2 -3
  138. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system_update.rb +1 -2
  139. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_overview.rb +1 -2
  140. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_package_receipts.rb +2 -3
  141. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition.rb +1 -2
  142. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_encryption.rb +1 -2
  143. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_file_vault2_state.rb +1 -2
  144. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_plugin.rb +2 -3
  145. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage.rb +1 -2
  146. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results.rb +1 -2
  147. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results_v2.rb +1 -2
  148. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_v2.rb +1 -2
  149. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_printer.rb +2 -3
  150. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_purchase.rb +2 -3
  151. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_remote_management.rb +1 -2
  152. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_section.rb +1 -2
  153. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_security.rb +2 -3
  154. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_service.rb +2 -3
  155. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_software_update.rb +2 -3
  156. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_storage.rb +2 -3
  157. data/lib/jamf/api/jamf_pro/oapi_schemas/computer_user_and_location.rb +2 -3
  158. data/lib/jamf/api/jamf_pro/oapi_schemas/computers_search_results.rb +1 -2
  159. data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_profile.rb +1 -2
  160. data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_search_results.rb +1 -2
  161. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_candidate_request.rb +1 -2
  162. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_response.rb +1 -2
  163. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_status_response.rb +1 -2
  164. data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_update_request.rb +1 -2
  165. data/lib/jamf/api/jamf_pro/oapi_schemas/country.rb +1 -2
  166. data/lib/jamf/api/jamf_pro/oapi_schemas/country_codes.rb +1 -2
  167. data/lib/jamf/api/jamf_pro/oapi_schemas/create_path.rb +1 -2
  168. data/lib/jamf/api/jamf_pro/oapi_schemas/csa_token.rb +1 -2
  169. data/lib/jamf/api/jamf_pro/oapi_schemas/current_account.rb +1 -2
  170. data/lib/jamf/api/jamf_pro/oapi_schemas/current_authorization.rb +1 -2
  171. data/lib/jamf/api/jamf_pro/oapi_schemas/data_roaming_setting.rb +1 -2
  172. data/lib/jamf/api/jamf_pro/oapi_schemas/database_password.rb +1 -2
  173. data/lib/jamf/api/jamf_pro/oapi_schemas/day_of_week.rb +1 -2
  174. data/lib/jamf/api/jamf_pro/oapi_schemas/delete_user_command.rb +1 -2
  175. data/lib/jamf/api/jamf_pro/oapi_schemas/department.rb +1 -2
  176. data/lib/jamf/api/jamf_pro/oapi_schemas/departments_search_results.rb +1 -2
  177. data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task.rb +1 -2
  178. data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task_search_results.rb +1 -2
  179. data/lib/jamf/api/jamf_pro/oapi_schemas/device_communication_settings.rb +1 -2
  180. data/lib/jamf/api/jamf_pro/oapi_schemas/device_compliance_information.rb +1 -2
  181. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device.rb +1 -2
  182. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device_search_results.rb +1 -2
  183. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_body.rb +1 -2
  184. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_response.rb +1 -2
  185. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance.rb +1 -2
  186. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_search_results.rb +1 -2
  187. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_sync_status.rb +1 -2
  188. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage.rb +1 -2
  189. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage_v2.rb +1 -2
  190. data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_token.rb +1 -2
  191. data/lib/jamf/api/jamf_pro/oapi_schemas/diagnostic_submission_setting.rb +1 -2
  192. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook.rb +1 -2
  193. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_exclusions.rb +1 -2
  194. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_limitations.rb +1 -2
  195. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_scope.rb +1 -2
  196. data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_search_results.rb +1 -2
  197. data/lib/jamf/api/jamf_pro/oapi_schemas/enable_lost_mode_command.rb +1 -2
  198. data/lib/jamf/api/jamf_pro/oapi_schemas/engage.rb +1 -2
  199. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_preview.rb +12 -6
  200. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_v2.rb +1 -2
  201. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization.rb +1 -2
  202. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_branding_settings.rb +1 -2
  203. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependencies.rb +1 -2
  204. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependency.rb +1 -2
  205. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_ldap_group_access.rb +1 -2
  206. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel.rb +1 -2
  207. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_ldap_auth.rb +1 -2
  208. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_list.rb +1 -2
  209. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_sso_auth.rb +1 -2
  210. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_text.rb +1 -2
  211. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results.rb +1 -2
  212. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results_v2.rb +1 -2
  213. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_v2.rb +3 -3
  214. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_method.rb +1 -2
  215. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_process_text_object.rb +5 -6
  216. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_settings_v2.rb +1 -2
  217. data/lib/jamf/api/jamf_pro/oapi_schemas/export_field.rb +1 -2
  218. data/lib/jamf/api/jamf_pro/oapi_schemas/export_parameters.rb +5 -2
  219. data/lib/jamf/api/jamf_pro/oapi_schemas/extension_attribute.rb +1 -2
  220. data/lib/jamf/api/jamf_pro/oapi_schemas/extension_attribute_v2.rb +1 -2
  221. data/lib/jamf/api/jamf_pro/oapi_schemas/external_recipient.rb +1 -2
  222. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment.rb +1 -2
  223. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_delete.rb +1 -2
  224. data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_v2.rb +1 -2
  225. data/lib/jamf/api/jamf_pro/oapi_schemas/filter.rb +1 -2
  226. data/lib/jamf/api/jamf_pro/oapi_schemas/font_path.rb +1 -2
  227. data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage.rb +1 -2
  228. data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage_v2.rb +1 -2
  229. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization.rb +1 -2
  230. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel.rb +1 -2
  231. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_ldap_auth.rb +1 -2
  232. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_sso_auth.rb +1 -2
  233. data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_text.rb +1 -2
  234. data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage.rb +1 -2
  235. data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage_v2.rb +1 -2
  236. data/lib/jamf/api/jamf_pro/oapi_schemas/group_mappings.rb +1 -2
  237. data/lib/jamf/api/jamf_pro/oapi_schemas/group_membership.rb +2 -3
  238. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search.rb +1 -2
  239. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_request.rb +1 -4
  240. data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_response.rb +1 -4
  241. data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results.rb +1 -6
  242. data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results_v1.rb +1 -2
  243. data/lib/jamf/api/jamf_pro/oapi_schemas/href_response.rb +3 -4
  244. data/lib/jamf/api/jamf_pro/oapi_schemas/icon_response.rb +1 -2
  245. data/lib/jamf/api/jamf_pro/oapi_schemas/id_and_name.rb +1 -2
  246. data/lib/jamf/api/jamf_pro/oapi_schemas/id_and_name_v2.rb +1 -2
  247. data/lib/jamf/api/jamf_pro/oapi_schemas/ids.rb +5 -2
  248. data/lib/jamf/api/jamf_pro/oapi_schemas/initialize.rb +1 -2
  249. data/lib/jamf/api/jamf_pro/oapi_schemas/initialize_v1.rb +1 -2
  250. data/lib/jamf/api/jamf_pro/oapi_schemas/install_package.rb +1 -2
  251. data/lib/jamf/api/jamf_pro/oapi_schemas/integer_wrapper.rb +1 -2
  252. data/lib/jamf/api/jamf_pro/oapi_schemas/internal_recipient.rb +1 -2
  253. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_information.rb +1 -2
  254. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_error.rb +1 -2
  255. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error.rb +1 -2
  256. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error_cause.rb +1 -2
  257. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_success.rb +1 -2
  258. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute.rb +1 -2
  259. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column.rb +1 -2
  260. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column_result.rb +1 -2
  261. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_invalid_csv_response.rb +1 -2
  262. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record.rb +1 -2
  263. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results.rb +1 -2
  264. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results_v2.rb +1 -2
  265. data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_v2.rb +1 -2
  266. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_configuration.rb +1 -2
  267. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_search_results.rb +1 -2
  268. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_details.rb +1 -2
  269. data/lib/jamf/api/jamf_pro/oapi_schemas/ios_details_v2.rb +1 -2
  270. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_application_response.rb +1 -2
  271. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_nation_credentials.rb +1 -2
  272. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_package_response.rb +1 -2
  273. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_information.rb +1 -2
  274. data/lib/jamf/api/jamf_pro/oapi_schemas/{enrollment_access_group.rb → jamf_pro_information_v2.rb} +35 -34
  275. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_server_url.rb +1 -2
  276. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_version.rb +1 -2
  277. data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_protect_plan.rb +1 -2
  278. data/lib/jamf/api/jamf_pro/oapi_schemas/language_code.rb +5 -6
  279. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_request.rb +1 -2
  280. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_response.rb +1 -2
  281. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_update.rb +1 -2
  282. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group.rb +1 -2
  283. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group_search_results.rb +1 -2
  284. data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_server.rb +1 -2
  285. data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile.rb +1 -2
  286. data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile_search_results.rb +1 -2
  287. data/lib/jamf/api/jamf_pro/oapi_schemas/locale.rb +1 -2
  288. data/lib/jamf/api/jamf_pro/oapi_schemas/location.rb +1 -2
  289. data/lib/jamf/api/jamf_pro/oapi_schemas/location_information.rb +1 -2
  290. data/lib/jamf/api/jamf_pro/oapi_schemas/location_information_v2.rb +1 -2
  291. data/lib/jamf/api/jamf_pro/oapi_schemas/location_v2.rb +1 -2
  292. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_configuration.rb +1 -2
  293. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_search_results.rb +1 -2
  294. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update.rb +28 -3
  295. data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update_response.rb +1 -4
  296. data/lib/jamf/api/jamf_pro/oapi_schemas/markdown.rb +1 -2
  297. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_client_type.rb +1 -2
  298. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command.rb +1 -2
  299. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_client.rb +1 -2
  300. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_request.rb +1 -2
  301. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_state.rb +1 -2
  302. data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_type.rb +1 -2
  303. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_mappings.rb +1 -2
  304. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_request.rb +1 -4
  305. data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_response.rb +1 -4
  306. data/lib/jamf/api/jamf_pro/oapi_schemas/memcached_endpoints.rb +1 -2
  307. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device.rb +1 -2
  308. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_application.rb +1 -2
  309. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_attachment.rb +1 -2
  310. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_attachment_v2.rb +1 -2
  311. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate_v1.rb +1 -2
  312. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate_v2.rb +61 -3
  313. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details.rb +1 -2
  314. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_get_v2.rb +1 -2
  315. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_v2.rb +7 -2
  316. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_ebook.rb +1 -2
  317. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_extension_attribute_results.rb +1 -2
  318. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_group.rb +1 -2
  319. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage.rb +1 -2
  320. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name.rb +1 -2
  321. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name_v2.rb +1 -2
  322. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names.rb +1 -2
  323. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names_v2.rb +1 -2
  324. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results.rb +1 -2
  325. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results_v2.rb +1 -2
  326. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_v2.rb +1 -2
  327. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_params.rb +1 -2
  328. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_results.rb +1 -2
  329. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_results_v2.rb +1 -2
  330. data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_v2.rb +1 -2
  331. data/lib/jamf/api/jamf_pro/oapi_schemas/network.rb +1 -2
  332. data/lib/jamf/api/jamf_pro/oapi_schemas/network_v2.rb +1 -2
  333. data/lib/jamf/api/jamf_pro/oapi_schemas/notification.rb +1 -2
  334. data/lib/jamf/api/jamf_pro/oapi_schemas/notification_type.rb +3 -3
  335. data/lib/jamf/api/jamf_pro/oapi_schemas/notification_v1.rb +1 -2
  336. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history.rb +1 -6
  337. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_note.rb +1 -6
  338. data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_v1.rb +1 -2
  339. data/lib/jamf/api/jamf_pro/oapi_schemas/order_by.rb +1 -2
  340. data/lib/jamf/api/jamf_pro/oapi_schemas/package_manifest.rb +1 -2
  341. data/lib/jamf/api/jamf_pro/oapi_schemas/parent_app.rb +5 -5
  342. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_ids_on_dashboard.rb +1 -2
  343. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_attempt.rb +1 -2
  344. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_attempt_action.rb +1 -2
  345. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log.rb +1 -2
  346. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log_search_results.rb +1 -2
  347. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_on_dashboard.rb +1 -2
  348. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_summary.rb +1 -2
  349. data/lib/jamf/api/jamf_pro/oapi_schemas/patch_version.rb +1 -2
  350. data/lib/jamf/api/jamf_pro/oapi_schemas/personal_hotspot_setting.rb +1 -2
  351. data/lib/jamf/api/jamf_pro/oapi_schemas/plan_search_results.rb +1 -2
  352. data/lib/jamf/api/jamf_pro/oapi_schemas/plugin_path.rb +1 -2
  353. data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties.rb +1 -2
  354. data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties_v1.rb +1 -2
  355. data/lib/jamf/api/jamf_pro/oapi_schemas/post_computer_prestage_v2.rb +1 -2
  356. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependencies.rb +1 -2
  357. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependency.rb +1 -2
  358. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment.rb +1 -2
  359. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment_v2.rb +1 -2
  360. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information.rb +1 -2
  361. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information_v2.rb +1 -2
  362. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope.rb +1 -2
  363. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment.rb +1 -2
  364. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment_v2.rb +1 -2
  365. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response.rb +1 -2
  366. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response_v2.rb +1 -2
  367. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_update.rb +1 -2
  368. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_v2.rb +1 -2
  369. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status.rb +1 -2
  370. data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status_v2.rb +1 -2
  371. data/lib/jamf/api/jamf_pro/oapi_schemas/process_texts_search_results.rb +3 -4
  372. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_registration_request.rb +1 -2
  373. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_settings_response.rb +1 -2
  374. data/lib/jamf/api/jamf_pro/oapi_schemas/protect_updatable_settings_request.rb +1 -2
  375. data/lib/jamf/api/jamf_pro/oapi_schemas/provisioning_profile.rb +1 -2
  376. data/lib/jamf/api/jamf_pro/oapi_schemas/purchasing.rb +1 -2
  377. data/lib/jamf/api/jamf_pro/oapi_schemas/purchasing_v2.rb +1 -2
  378. data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage.rb +1 -2
  379. data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage_v2.rb +1 -2
  380. data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage.rb +1 -2
  381. data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage_v2.rb +1 -2
  382. data/lib/jamf/api/jamf_pro/oapi_schemas/recalculation_results.rb +1 -2
  383. data/lib/jamf/api/jamf_pro/oapi_schemas/recipient.rb +1 -2
  384. data/lib/jamf/api/jamf_pro/oapi_schemas/recipients.rb +1 -2
  385. data/lib/jamf/api/jamf_pro/oapi_schemas/redeploy_jamf_management_framework_response.rb +1 -2
  386. data/lib/jamf/api/jamf_pro/oapi_schemas/reenrollment.rb +1 -2
  387. data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_response.rb +1 -2
  388. data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_search_results.rb +1 -2
  389. data/lib/jamf/api/jamf_pro/oapi_schemas/renew_mdm_profile_response.rb +1 -2
  390. data/lib/jamf/api/jamf_pro/oapi_schemas/restart_device_command.rb +1 -2
  391. data/lib/jamf/api/jamf_pro/oapi_schemas/retry_patch_policy_params.rb +1 -2
  392. data/lib/jamf/api/jamf_pro/oapi_schemas/{safelisted_apps.rb → safelisted_app.rb} +15 -11
  393. data/lib/jamf/api/jamf_pro/oapi_schemas/script.rb +1 -2
  394. data/lib/jamf/api/jamf_pro/oapi_schemas/scripts_search_results.rb +1 -2
  395. data/lib/jamf/api/jamf_pro/oapi_schemas/search_active_patch_history_params.rb +1 -2
  396. data/lib/jamf/api/jamf_pro/oapi_schemas/search_patch_policy_log_params.rb +1 -2
  397. data/lib/jamf/api/jamf_pro/oapi_schemas/security.rb +1 -2
  398. data/lib/jamf/api/jamf_pro/oapi_schemas/security_v2.rb +1 -2
  399. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_install_settings.rb +1 -2
  400. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_interaction_settings.rb +1 -2
  401. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_login_settings.rb +1 -2
  402. data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_settings.rb +1 -2
  403. data/lib/jamf/api/jamf_pro/oapi_schemas/session.rb +1 -2
  404. data/lib/jamf/api/jamf_pro/oapi_schemas/session_candidate_request.rb +1 -2
  405. data/lib/jamf/api/jamf_pro/oapi_schemas/session_details.rb +1 -2
  406. data/lib/jamf/api/jamf_pro/oapi_schemas/session_details_search_results.rb +1 -2
  407. data/lib/jamf/api/jamf_pro/oapi_schemas/session_status.rb +1 -2
  408. data/lib/jamf/api/jamf_pro/oapi_schemas/set_recovery_lock_command.rb +1 -2
  409. data/lib/jamf/api/jamf_pro/oapi_schemas/settings_command.rb +1 -2
  410. data/lib/jamf/api/jamf_pro/oapi_schemas/shared_device_configuration.rb +1 -2
  411. data/lib/jamf/api/jamf_pro/oapi_schemas/signature.rb +1 -2
  412. data/lib/jamf/api/jamf_pro/oapi_schemas/site.rb +1 -2
  413. data/lib/jamf/api/jamf_pro/oapi_schemas/smart_search_criterion.rb +1 -2
  414. data/lib/jamf/api/jamf_pro/oapi_schemas/software_title_configuration.rb +1 -2
  415. data/lib/jamf/api/jamf_pro/oapi_schemas/software_title_patch_policy_summaries.rb +1 -2
  416. data/lib/jamf/api/jamf_pro/oapi_schemas/software_update_settings.rb +1 -2
  417. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore.rb +1 -2
  418. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_cert_parse_response.rb +1 -2
  419. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_details.rb +1 -2
  420. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_parse.rb +1 -2
  421. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response.rb +1 -2
  422. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response_with_details.rb +1 -2
  423. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_with_details.rb +1 -2
  424. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_metadata_url.rb +1 -2
  425. data/lib/jamf/api/jamf_pro/oapi_schemas/sso_settings.rb +1 -2
  426. data/lib/jamf/api/jamf_pro/oapi_schemas/startup_status.rb +1 -2
  427. data/lib/jamf/api/jamf_pro/oapi_schemas/static_user_group.rb +1 -2
  428. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity.rb +1 -2
  429. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_certificate_upload.rb +1 -2
  430. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_create.rb +1 -2
  431. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_search_results.rb +1 -2
  432. data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_update.rb +1 -2
  433. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_features.rb +1 -2
  434. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_request.rb +5 -5
  435. data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_response.rb +5 -5
  436. data/lib/jamf/api/jamf_pro/oapi_schemas/time_frame.rb +1 -2
  437. data/lib/jamf/api/jamf_pro/oapi_schemas/time_zone.rb +1 -2
  438. data/lib/jamf/api/jamf_pro/oapi_schemas/tv_os_details.rb +9 -2
  439. data/lib/jamf/api/jamf_pro/oapi_schemas/udids.rb +1 -2
  440. data/lib/jamf/api/jamf_pro/oapi_schemas/update_apple_tv.rb +1 -2
  441. data/lib/jamf/api/jamf_pro/oapi_schemas/update_ios.rb +1 -2
  442. data/lib/jamf/api/jamf_pro/oapi_schemas/update_ios_v2.rb +1 -2
  443. data/lib/jamf/api/jamf_pro/oapi_schemas/update_mobile_device.rb +1 -2
  444. data/lib/jamf/api/jamf_pro/oapi_schemas/update_mobile_device_v2.rb +1 -2
  445. data/lib/jamf/api/jamf_pro/oapi_schemas/update_tv_os.rb +1 -2
  446. data/lib/jamf/api/jamf_pro/oapi_schemas/user_attributes.rb +1 -2
  447. data/lib/jamf/api/jamf_pro/oapi_schemas/user_mappings.rb +1 -2
  448. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search.rb +1 -2
  449. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_request.rb +1 -4
  450. data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_response.rb +1 -4
  451. data/lib/jamf/api/jamf_pro/oapi_schemas/v1_site.rb +3 -3
  452. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_ca_record.rb +1 -2
  453. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record.rb +1 -2
  454. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record_search_results.rb +1 -2
  455. data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_service_status.rb +1 -2
  456. data/lib/jamf/api/jamf_pro/oapi_schemas/verbose_package_deployment_response.rb +1 -2
  457. data/lib/jamf/api/jamf_pro/oapi_schemas/voice_roaming_setting.rb +1 -2
  458. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_content.rb +1 -2
  459. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location.rb +1 -2
  460. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_list_view.rb +1 -2
  461. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_patch.rb +1 -2
  462. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_post.rb +1 -2
  463. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_locations.rb +1 -2
  464. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription.rb +1 -2
  465. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription_base.rb +1 -2
  466. data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscriptions.rb +1 -2
  467. data/lib/jamf/api/jamf_pro/oapi_schemas/vpp_admin_account.rb +1 -2
  468. data/lib/jamf/api/jamf_pro/oapi_schemas/vpp_token_subscription.rb +1 -2
  469. data/lib/jamf/api/jamf_pro/oapi_schemas/web_link.rb +1 -2
  470. data/lib/jamf/client/jamf_binary.rb +76 -77
  471. data/lib/jamf/client/jamf_helper.rb +245 -235
  472. data/lib/jamf/client/management_action.rb +63 -53
  473. data/lib/jamf/client.rb +3 -3
  474. data/lib/jamf/deprecations/deprecated_api_connection_class.rb +29 -0
  475. data/lib/jamf/deprecations/deprecated_api_constant.rb +3 -1
  476. data/lib/jamf/deprecations/deprecated_config_constant.rb +3 -1
  477. data/lib/jamf/version.rb +1 -1
  478. data/lib/jamf/zeitwerk_config.rb +217 -0
  479. data/lib/jamf.rb +7 -39
  480. data/test/{README.md → README-TEST.md} +3 -0
  481. data/test/bin/runtests +42 -2
  482. data/test/lib/jamf_test/collection_tests.rb +4 -7
  483. data/test/tests/building.rb +41 -0
  484. data/test/tests/computer.rb +41 -0
  485. data/test/tests/computer_group.rb +132 -0
  486. data/test/tests/department.rb +41 -0
  487. data/test/tests/mobile_device.rb +41 -0
  488. data/test/tests/policy.rb +39 -50
  489. metadata +35 -54
  490. data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_identity_v1.rb +0 -102
  491. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_request.rb +0 -92
  492. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_response.rb +0 -105
  493. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_update.rb +0 -92
  494. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_request.rb +0 -166
  495. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_response.rb +0 -163
  496. data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_update.rb +0 -171
  497. data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_settings.rb +0 -264
  498. data/lib/zeitwerk_config.rb +0 -163
@@ -112,7 +112,7 @@ module Jamf
112
112
  cnx = api if api
113
113
 
114
114
  raise Jamf::NoSuchItemError, "No #{self} matching '#{group}'" unless (group_id = valid_id group, cnx: cnx)
115
- raise Jamf::UnsupportedError, "Not a static group, can't change membership directly" if map_all_ids_to(:is_smart, cnx: cnx)[group_id]
115
+ raise Jamf::UnsupportedError, "Not a static group, can't change membership" if map_all(:id, to: :is_smart, cnx: cnx)[group_id]
116
116
 
117
117
  add_members = [add_members].flatten
118
118
  remove_members = [remove_members].flatten
@@ -123,6 +123,8 @@ module Jamf
123
123
  # that isn't in the group (which is kinda lame - it should just
124
124
  # ignore this, like it does when we add a member that's already
125
125
  # in the group.)
126
+ # Its even more lame because we have to instantiate the group
127
+ # and part of the point of this class method is to avoid that.
126
128
  current_member_ids = fetch(id: group_id, cnx: cnx).member_ids
127
129
 
128
130
  # nil if no changes to be made
@@ -189,7 +191,6 @@ module Jamf
189
191
  end
190
192
  private_class_method :member_removals_xml
191
193
 
192
-
193
194
  # Attributes
194
195
  #####################################
195
196
 
@@ -207,10 +208,12 @@ module Jamf
207
208
 
208
209
  # @return [Boolean] is this a smart group
209
210
  attr_reader :is_smart
211
+ alias smart? is_smart
210
212
 
211
213
  # @return [Boolean] does this group send notifications when it changes?
212
214
  attr_reader :notify_on_change
213
-
215
+ alias notify_on_change? notify_on_change
216
+ alias notify? notify_on_change
214
217
 
215
218
  # Constructor
216
219
  #####################################
@@ -221,20 +224,14 @@ module Jamf
221
224
  # @see Jamf::APIObject
222
225
  #
223
226
  def initialize(**args)
224
- if args[:id] == :new
225
- raise Jamf::InvalidDataError, 'New group creation must specify a :type of :smart or :static' unless GROUP_TYPES.include? args[:type]
226
- end
227
+ raise Jamf::InvalidDataError, 'New group creation must specify a :type of :smart or :static' if args[:id] == :new && !(GROUP_TYPES.include? args[:type])
227
228
 
228
229
  super
229
230
 
230
231
  @is_smart = @init_data[:is_smart] || (args[:type] == :smart)
231
232
 
232
233
  @members =
233
- if @init_data[self.class::MEMBER_CLASS::RSRC_LIST_KEY]
234
- @init_data[self.class::MEMBER_CLASS::RSRC_LIST_KEY]
235
- else
236
- []
237
- end
234
+ @init_data[self.class::MEMBER_CLASS::RSRC_LIST_KEY] || []
238
235
  end # init
239
236
 
240
237
  # Public Instance Methods
@@ -251,9 +248,8 @@ module Jamf
251
248
  # happens, try again this many times with a 1 second pause between attempts.
252
249
  #
253
250
  def create(calculate_members: true, retries: 10)
254
- if @is_smart
255
- raise Jamf::MissingDataError, 'No criteria specified for smart group' unless @criteria
256
- end
251
+ raise Jamf::MissingDataError, 'No criteria specified for smart group' if @is_smart && !@criteria
252
+
257
253
  super()
258
254
 
259
255
  if calculate_members
@@ -289,10 +285,10 @@ module Jamf
289
285
  if @in_jss
290
286
  raise Jamf::UnsupportedError, 'Updating this object in the JSS is currently not supported by ruby-jss' unless updatable?
291
287
 
292
-
293
288
  update refresh: params[:refresh]
294
289
  else
295
290
  raise Jamf::UnsupportedError, 'Creating this object in the JSS is currently not supported by ruby-jss' unless creatable?
291
+
296
292
  create calculate_members: params[:calculate_members], retries: params[:retries]
297
293
  end
298
294
  end
@@ -321,8 +317,10 @@ module Jamf
321
317
  #
322
318
  # @param args[Hash] the options and settings use for switching the computer group from static group to smart group
323
319
  #
324
- # @option args criteria[Array] The criterias to be user for the smart group
325
- def set_smart(*params)
320
+ # @option args criteria[Array] The criteria to be user for the smart group
321
+ #
322
+ # @return [void]
323
+ def make_smart(**params)
326
324
  return if @is_smart
327
325
 
328
326
  params[:criteria] = [] if params[:criteria].nil?
@@ -332,22 +330,28 @@ module Jamf
332
330
  @is_smart = true
333
331
  @need_to_update = true
334
332
  end
333
+ # backward compatility
334
+ alias set_smart make_smart
335
335
 
336
336
  # Change smart group to static group
337
337
  #
338
338
  # @param args[Hash] the options and settings use for switching the computer group from smart group to static group
339
339
  #
340
340
  # @option args preserve_members[Boolean] Should the smart group preserve it's current members?
341
- def set_static(*params)
341
+ #
342
+ # @return [void]
343
+ def make_static(**params)
342
344
  return unless @is_smart
343
345
 
344
346
  preserve_members = params.include? :preserve_members
345
347
 
346
348
  @is_smart = false
347
349
 
348
- clear() unless preserve_members
350
+ clear unless preserve_members
349
351
  end
350
-
352
+ # backward compatility
353
+ alias set_static make_static
354
+
351
355
  # How many members of the group?
352
356
  #
353
357
  # @return [Integer] the number of members of the group
@@ -355,6 +359,13 @@ module Jamf
355
359
  def size
356
360
  @members.count
357
361
  end
362
+ alias count size
363
+
364
+ # @return [Boolean] Is this a static group?
365
+ def static?
366
+ !smart?
367
+ end
368
+ alias is_static static?
358
369
 
359
370
  # @return [Array<String>] the names of the group members
360
371
  #
@@ -381,6 +392,7 @@ module Jamf
381
392
  def members=(new_members)
382
393
  raise UnsupportedError, "Smart group members can't be changed." if @is_smart
383
394
  raise InvalidDataError, 'Arg must be an array of names and/or ids' unless new_members.is_a? Array
395
+
384
396
  ok_members = []
385
397
  new_members.each do |m|
386
398
  ok_members << check_member(m)
@@ -390,6 +402,7 @@ module Jamf
390
402
 
391
403
  # make sure we've actually changed...
392
404
  return if members.map { |m| m[:id] }.sort == ok_members.map { |m| m[:id] }.sort
405
+
393
406
  @members = ok_members
394
407
  @need_to_update = true
395
408
  end
@@ -401,22 +414,32 @@ module Jamf
401
414
  # @return [void]
402
415
  #
403
416
  def add_member(mem)
404
- raise UnsupportedError, "Smart group members can't be changed." if @is_smart
417
+ raise UnsupportedError, "Smart group members can't be changed." if smart?
418
+
405
419
  @members << check_member(mem)
406
420
  @need_to_update = true
407
421
  end
408
422
 
409
423
  # Remove a member by id, or name
410
424
  #
411
- # @param m[Integer,String] the id or name of the member to remove
425
+ # @param m[Integer,String] an identifier for the item to remove
412
426
  #
413
427
  # @return [void]
414
428
  #
415
429
  def remove_member(mem)
416
- raise InvalidDataError, "Smart group members can't be changed." if @is_smart
417
- raise InvalidDataError, "Can't remove nil" if mem.nil?
418
- removed = @members.reject! { |mm| [mm[:id], mm[:name], mm[:username]].include? mem }
419
- @need_to_update = true if removed
430
+ raise UnsupportedError, "Smart group members can't be changed." if smart?
431
+
432
+ # See if we have the identifier in the @members hash
433
+ id_to_remove = @members.select { |mm| mm.values.include? mem }.first&.dig :id
434
+ # But the members hash might not have SN, macaddr, etc, and never has udid, so
435
+ # look at the MEMBER_CLASS if needed
436
+ id_to_remove ||= self.class::MEMBER_CLASS.valid_id mem
437
+
438
+ # nothing to do if that id isn't one of our members
439
+ return unless id_to_remove && member_ids.include?(id_to_remove)
440
+
441
+ @members.delete_if { |k, v| k == :id && v == id_to_remove }
442
+ @need_to_update = true
420
443
  end
421
444
 
422
445
  # Remove all members
@@ -426,6 +449,7 @@ module Jamf
426
449
  def clear
427
450
  raise InvalidDataError, "Smart group members can't be changed." if @is_smart
428
451
  return if @members.empty?
452
+
429
453
  @members.clear
430
454
  @need_to_update = true
431
455
  end
@@ -458,13 +482,7 @@ module Jamf
458
482
  def refresh_members
459
483
  @members = @cnx.c_get(@rest_rsrc)[self.class::RSRC_OBJECT_KEY][self.class::MEMBER_CLASS::RSRC_LIST_KEY]
460
484
  end
461
-
462
- # aliases
463
-
464
- alias smart? is_smart
465
- alias notify_on_change? notify_on_change
466
- alias notify? notify_on_change
467
- alias count size
485
+
468
486
 
469
487
  # Public Instance Methods
470
488
  #####################################
@@ -477,13 +495,12 @@ module Jamf
477
495
  # @return [Hash{:id=>Integer,:name=>String}] the valid id and name
478
496
  #
479
497
  def check_member(m)
480
- potential_members = self.class::MEMBER_CLASS.map_all_ids_to(:name, cnx: @cnx)
481
- if m.to_s =~ /^\d+$/
482
- return { id: m.to_i, name: potential_members[m] } if potential_members.key?(m.to_i)
483
- else
484
- return { name: m, id: potential_members.invert[m] } if potential_members.value?(m)
485
- end
486
- raise Jamf::NoSuchItemError, "No #{self.class::MEMBER_CLASS::RSRC_OBJECT_KEY} matching '#{m}' in the JSS."
498
+ desired_id = self.class::MEMBER_CLASS.valid_id m, cnx: @cnx
499
+ raise Jamf::NoSuchItemError, "No #{self.class::MEMBER_CLASS::RSRC_OBJECT_KEY} matching '#{m}' in the JSS." unless desired_id
500
+
501
+ desired_name = self.class::MEMBER_CLASS.map_all(:id, to: :name, cnx: @cnx)[desired_id]
502
+
503
+ { name: desired_name, id: desired_id }
487
504
  end
488
505
 
489
506
  # the xml formated data for adding or updating this in the JSS,
@@ -128,8 +128,9 @@ module Jamf
128
128
 
129
129
  # Fetch either an internal or external patch source
130
130
  #
131
- # BUG: there's an API bug: fetching a non-existent
132
- # which is why we rescue internal server errors.
131
+ # BUG: there's an API bug when fetching a non-existent patch source
132
+ # which is why we rescue 500 internal server errors and report them
133
+ # as 'no matching patch source'
133
134
  #
134
135
  # @see APIObject.fetch
135
136
  #
@@ -162,7 +163,7 @@ module Jamf
162
163
  # @see APIObject.make
163
164
  #
164
165
  def self.create(**args)
165
- case self.name
166
+ case name
166
167
  when 'Jamf::PatchSource'
167
168
  Jamf::PatchExternalSource.make args
168
169
  when 'Jamf::PatchExternalSource'
@@ -184,7 +185,7 @@ module Jamf
184
185
  def self.delete(victims, api: nil, cnx: Jamf.cnx)
185
186
  cnx = api if api
186
187
 
187
- case self.name
188
+ case name
188
189
  when 'Jamf::PatchSource'
189
190
  Jamf::PatchExternalSource victims, cnx: cnx
190
191
  when 'Jamf::PatchExternalSource'
@@ -292,6 +293,7 @@ module Jamf
292
293
 
293
294
  return :internel if Jamf::PatchInternalSource.valid_id ident, refresh, cnx: cnx
294
295
  return :external if Jamf::PatchExternalSource.valid_id ident, refresh, cnx: cnx
296
+
295
297
  nil
296
298
  end
297
299
 
@@ -324,7 +326,10 @@ module Jamf
324
326
 
325
327
  # Init
326
328
  def initialize(**args)
327
- raise Jamf::UnsupportedError, 'PatchSource is an abstract metaclass. Please use PatchInternalSource or PatchExternalSource' if self.class == Jamf::PatchSource
329
+ if instance_of?(Jamf::PatchSource)
330
+ raise Jamf::UnsupportedError,
331
+ 'PatchSource is an abstract metaclass. Please use PatchInternalSource or PatchExternalSource'
332
+ end
328
333
 
329
334
  super
330
335
 
@@ -70,6 +70,53 @@ module Jamf
70
70
  attr_reader :connect_time
71
71
  alias login_time connect_time
72
72
 
73
+ # @return [Boolean] are we using a sticky session?
74
+ attr_reader :sticky_session
75
+ alias sticky_session? sticky_session
76
+ alias sticky? sticky_session
77
+
78
+ # @return [String, nil] The current sticky_session cookie. nil unless
79
+ # sticky_session is set to true, either as a param to 'connect' or via
80
+ # #sticky_session=
81
+ #
82
+ # When set via .connect, the cookie is gleaned from the token creation
83
+ # reponse. When set via #sticky_session=, a HEAD request is made, and the
84
+ # cookie will be in the response.
85
+ #
86
+ # Only valid when the connection is to a Jamf Cloud server.
87
+ attr_reader :sticky_session_cookie
88
+
89
+ ##########################################
90
+
91
+ # Turn sticky-sessions on or off. If turning on, host must be a Jamf Cloud
92
+ # server, with a hostname ending with Jamf::Connection::JAMFCLOUD_DOMAIN
93
+ #
94
+ # @param value [Boolean] should we use a sticky session?
95
+ #
96
+ # @return [void]
97
+ #
98
+ def sticky_session=(value)
99
+ @sticky_session ||= false
100
+
101
+ # convert boolean-y to boolean
102
+ value = value ? true : false
103
+
104
+ return if @sticky_session == value
105
+
106
+ if value
107
+ raise Jamf::UnsupportedError, 'Sticky Sessions may only be used with Jamf Cloud servers.' unless host.end_with? Jamf::Connection::JAMFCLOUD_DOMAIN
108
+
109
+ @sticky_session = true
110
+ enable_sticky_session Jamf.cnx.jp_cnx.head.headers
111
+
112
+ else
113
+ @sticky_session = false
114
+ @sticky_session_cookie = nil
115
+ @c_cnx&.headers&.delete Jamf::Connection::COOKIE_HEADER
116
+ @jp_cnx&.headers&.delete Jamf::Connection::COOKIE_HEADER
117
+ end
118
+ end
119
+
73
120
  # Reset the response timeout for the rest connection
74
121
  #
75
122
  # @param timeout[Integer] the new timeout in seconds
@@ -78,8 +125,8 @@ module Jamf
78
125
  #
79
126
  def timeout=(new_timeout)
80
127
  @timeout = new_timeout.to_i
81
- @c_cnx.options[:timeout] = @timeout if @c_cnx
82
- @jp_cnx.options[:timeout] = @timeout if @jp_cnx
128
+ @c_cnx&.options[:timeout] = @timeout
129
+ @jp_cnx&.options[:timeout] = @timeout
83
130
  end
84
131
 
85
132
  # Reset the open-connection timeout for the rest connection
@@ -90,8 +137,8 @@ module Jamf
90
137
  #
91
138
  def open_timeout=(new_timeout)
92
139
  @open_timeout = new_timeout.to_i
93
- @c_cnx.options[:open_timeout] = @open_timeout if @c_cnx
94
- @jp_cnx.options[:open_timeout] = @open_timeout if @jp_cnx
140
+ @c_cnx&.options[:open_timeout] = @open_timeout
141
+ @jp_cnx&.options[:open_timeout] = @open_timeout
95
142
  end
96
143
 
97
144
  # @return [URI::HTTPS] the base URL to the server
@@ -65,6 +65,7 @@ module Jamf
65
65
  resp =
66
66
  @c_cnx.get(rsrc) do |req|
67
67
  req.headers[Jamf::Connection::HTTP_ACCEPT_HEADER] = format == :json ? Jamf::Connection::MIME_JSON : Jamf::Connection::MIME_XML
68
+ # puts "Classic API Cookie is: #{req.headers['Cookie']}"
68
69
  end
69
70
  @last_http_response = resp
70
71
  unless resp.success?
@@ -222,7 +223,7 @@ module Jamf
222
223
 
223
224
  cnx.options[:timeout] = @timeout
224
225
  cnx.options[:open_timeout] = @open_timeout
225
-
226
+
226
227
  cnx.request :multipart
227
228
  cnx.request :url_encoded
228
229
 
@@ -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
@@ -106,7 +106,7 @@ module Jamf
106
106
  # If you provide connection details when calling 'new', they will be passed
107
107
  # to the {#connect} method immediately. Otherwise you can call {#connect} later.
108
108
  #
109
- # production_api = Jamf::Connection.new(
109
+ # production_server = Jamf::Connection.new(
110
110
  # 'https://produser@prodserver.address.org:8443/'
111
111
  # name: 'prod',
112
112
  # pw: :prompt
@@ -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