ruby-jss 2.0.0a10 → 2.0.0b3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README-2.0.0.md +53 -32
- data/lib/jamf/api/classic/api_objects/computer.rb +18 -15
- data/lib/jamf/api/classic/api_objects/computer_group.rb +1 -0
- data/lib/jamf/api/classic/api_objects/criteriable.rb +1 -1
- data/lib/jamf/api/classic/api_objects/mdm.rb +40 -24
- data/lib/jamf/api/classic/api_objects/mobile_device.rb +8 -12
- data/lib/jamf/api/classic/api_objects/mobile_device_application.rb +35 -6
- data/lib/jamf/api/classic/api_objects/policy.rb +8 -17
- data/lib/jamf/api/classic/api_objects/script.rb +1 -1
- data/lib/jamf/api/classic/base_classes/advanced_search.rb +5 -5
- data/lib/jamf/api/classic/base_classes/api_object.rb +26 -26
- data/lib/jamf/api/classic/base_classes/extension_attribute.rb +2 -2
- data/lib/jamf/api/classic/base_classes/group.rb +57 -40
- data/lib/jamf/api/connection/attributes.rb +51 -4
- data/lib/jamf/api/connection/classic_api.rb +2 -1
- data/lib/jamf/api/connection/connect.rb +49 -2
- data/lib/jamf/api/connection/constants.rb +6 -0
- data/lib/jamf/api/connection/jamf_pro_api.rb +6 -2
- data/lib/jamf/api/connection/token.rb +10 -3
- data/lib/jamf/api/connection.rb +1 -1
- data/lib/jamf/api/jamf_pro/api_objects/inventory_preload_record.rb +9 -1
- data/lib/jamf/api/jamf_pro/base_classes/oapi_object.rb +21 -9
- data/lib/jamf/api/jamf_pro/mixins/macos_managed_updates.rb +178 -0
- data/lib/jamf/api/jamf_pro/mixins/prestage.rb +17 -7
- data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_preview_search_results.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_v2_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/account.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/{access_groups_search_results.rb → account_driven_user_enrollment_session_token_settings.rb} +14 -14
- data/lib/jamf/api/jamf_pro/oapi_schemas/account_group.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v1.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v4.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_history.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_history_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_summary.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/admin_account.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_criteria_choices.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/android_details.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/api_error.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/api_error_cause.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_analytics_setting.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_dynamics_config.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_path.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_settings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/apple_tv_details.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/application_attributes.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/application_configuration.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/assign_remove_profile_response_sync_state.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/attributes.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account_v1.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token_v1.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/authorization.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/authorization_v1.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/{deprecated_configuration_search_results.rb → available_updates.rb} +12 -20
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_ad_migration_report_process_status.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_ad_migration_report_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_update.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_mappings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_update.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/branding_image_url.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/building.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/building_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/cache_settings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/categories_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/category.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_details.rb +1 -4
- data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_identity_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_key.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_record.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/classic_ldap_mappings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/client_check_in_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/client_check_in_v3.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_pool_statistics.rb +1 -6
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_status.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore.rb +1 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore_file.rb +1 -4
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_request.rb +1 -6
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_response.rb +1 -9
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_update.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_application.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_attachment.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_certificate.rb +26 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_configuration_profile.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_alert.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_cache_detail.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error_user_info.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_alert.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_capabilities.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_details.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_local_network.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk_encryption.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_extension_attribute.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_font.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general_update.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/{mdm_signing_certificate.rb → computer_group.rb} +18 -24
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware_update.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_ibeacon.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/{computer_inventory_response.rb → computer_inventory.rb} +4 -5
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_preferences.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_settings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_recovery_lock_password_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_search_results.rb +4 -5
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_update_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_licensed_software.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_local_user_account.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_location.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_mdm_capability.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system_update.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_overview.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_package_receipts.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_encryption.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_file_vault2_state.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_plugin.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_printer.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_purchase.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_remote_management.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_section.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_security.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_service.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_software_update.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_storage.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_user_and_location.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/computers_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_profile.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_candidate_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_status_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_update_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/country.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/country_codes.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/create_path.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/csa_token.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/current_account.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/current_authorization.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/data_roaming_setting.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/database_password.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/day_of_week.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/delete_user_command.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/department.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/departments_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_communication_settings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_compliance_information.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_body.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_sync_status.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_token.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/diagnostic_submission_setting.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ebook.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_exclusions.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_limitations.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_scope.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enable_lost_mode_command.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/engage.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_preview.rb +12 -6
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_branding_settings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependencies.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependency.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_ldap_group_access.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_ldap_auth.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_list.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_sso_auth.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_text.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_v2.rb +3 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_method.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_process_text_object.rb +5 -6
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_settings_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/export_field.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/export_parameters.rb +5 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/extension_attribute.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/extension_attribute_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/external_recipient.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_delete.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/filter.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/font_path.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_ldap_auth.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_sso_auth.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_text.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/group_mappings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/group_membership.rb +2 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_request.rb +1 -4
- data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_response.rb +1 -4
- data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results.rb +1 -6
- data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results_v1.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/href_response.rb +3 -4
- data/lib/jamf/api/jamf_pro/oapi_schemas/icon_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/id_and_name.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/id_and_name_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ids.rb +5 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/initialize.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/initialize_v1.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/install_package.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/integer_wrapper.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/internal_recipient.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_information.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_error.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error_cause.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_success.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column_result.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_invalid_csv_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_configuration.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ios_details.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ios_details_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_application_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_nation_credentials.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_package_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_information.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/{enrollment_access_group.rb → jamf_pro_information_v2.rb} +35 -34
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_server_url.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_version.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_protect_plan.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/language_code.rb +5 -6
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_update.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_server.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/locale.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/location.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/location_information.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/location_information_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/location_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_configuration.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update.rb +28 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update_response.rb +1 -4
- data/lib/jamf/api/jamf_pro/oapi_schemas/markdown.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_client_type.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_client.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_state.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_type.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/membership_mappings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_request.rb +1 -4
- data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_response.rb +1 -4
- data/lib/jamf/api/jamf_pro/oapi_schemas/memcached_endpoints.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_application.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_attachment.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_attachment_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate_v1.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate_v2.rb +61 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_get_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_v2.rb +7 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_ebook.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_extension_attribute_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_group.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_params.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_results_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/network.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/network_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/notification.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/notification_type.rb +3 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/notification_v1.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/object_history.rb +1 -6
- data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_note.rb +1 -6
- data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_v1.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/order_by.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/package_manifest.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/parent_app.rb +5 -5
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_ids_on_dashboard.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_attempt.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_attempt_action.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_on_dashboard.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_summary.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_version.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/personal_hotspot_setting.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/plan_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/plugin_path.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties_v1.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/post_computer_prestage_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependencies.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependency.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_update.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/process_texts_search_results.rb +3 -4
- data/lib/jamf/api/jamf_pro/oapi_schemas/protect_registration_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/protect_settings_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/protect_updatable_settings_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/provisioning_profile.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/purchasing.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/purchasing_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/recalculation_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/recipient.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/recipients.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/redeploy_jamf_management_framework_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/reenrollment.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/renew_mdm_profile_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/restart_device_command.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/retry_patch_policy_params.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/{safelisted_apps.rb → safelisted_app.rb} +15 -11
- data/lib/jamf/api/jamf_pro/oapi_schemas/script.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/scripts_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/search_active_patch_history_params.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/search_patch_policy_log_params.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/security.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/security_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_install_settings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_interaction_settings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_login_settings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_settings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/session.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/session_candidate_request.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/session_details.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/session_details_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/session_status.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/set_recovery_lock_command.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/settings_command.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/shared_device_configuration.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/signature.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/site.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/smart_search_criterion.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/software_title_configuration.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/software_title_patch_policy_summaries.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/software_update_settings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_cert_parse_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_details.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_parse.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response_with_details.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_with_details.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_metadata_url.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_settings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/startup_status.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/static_user_group.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_certificate_upload.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_create.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_update.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_features.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_request.rb +5 -5
- data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_response.rb +5 -5
- data/lib/jamf/api/jamf_pro/oapi_schemas/time_frame.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/time_zone.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/tv_os_details.rb +9 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/udids.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_apple_tv.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_ios.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_ios_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_mobile_device.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_mobile_device_v2.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_tv_os.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/user_attributes.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/user_mappings.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_request.rb +1 -4
- data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_response.rb +1 -4
- data/lib/jamf/api/jamf_pro/oapi_schemas/v1_site.rb +3 -3
- data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_ca_record.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record_search_results.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_service_status.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/verbose_package_deployment_response.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/voice_roaming_setting.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_content.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_list_view.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_patch.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_post.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_locations.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription_base.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscriptions.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/vpp_admin_account.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/vpp_token_subscription.rb +1 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/web_link.rb +1 -2
- data/lib/jamf/client/jamf_binary.rb +76 -77
- data/lib/jamf/client/jamf_helper.rb +245 -235
- data/lib/jamf/client/management_action.rb +63 -53
- data/lib/jamf/client.rb +3 -3
- data/lib/jamf/constants.rb +1 -1
- data/lib/jamf/deprecations/deprecated_api_connection_class.rb +29 -0
- data/lib/jamf/deprecations/deprecated_api_constant.rb +3 -1
- data/lib/jamf/deprecations/deprecated_config_constant.rb +3 -1
- data/lib/jamf/version.rb +1 -1
- data/lib/zeitwerk_config.rb +23 -17
- data/test/{README.md → README-TEST.md} +3 -0
- data/test/bin/runtests +42 -2
- data/test/lib/jamf_test/APITest.rb +33 -7
- data/test/lib/jamf_test/advanced_search.rb +40 -0
- data/test/lib/jamf_test/collection_tests.rb +8 -13
- data/test/lib/jamf_test/prestage_tests.rb +135 -0
- data/test/lib/jamf_test.rb +7 -1
- data/test/tests/advanced_computer_search.rb +36 -0
- data/test/tests/advanced_mobile_device_search.rb +36 -0
- data/test/tests/advanced_user_search.rb +36 -0
- data/test/tests/building.rb +41 -0
- data/test/tests/computer.rb +41 -0
- data/test/tests/computer_group.rb +132 -0
- data/test/tests/computer_prestage.rb +36 -0
- data/test/tests/department.rb +41 -0
- data/test/tests/inventory_preload_record.rb +2 -2
- data/test/tests/mobile_device.rb +41 -0
- data/test/tests/mobile_device_prestage.rb +37 -0
- data/test/tests/policy.rb +39 -50
- metadata +41 -53
- data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_identity_v1.rb +0 -102
- data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_request.rb +0 -92
- data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_response.rb +0 -105
- data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_configuration_update.rb +0 -92
- data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_request.rb +0 -166
- data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_response.rb +0 -163
- data/lib/jamf/api/jamf_pro/oapi_schemas/deprecated_server_update.rb +0 -171
- 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
|
|
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
|
|
479
|
+
self.class::Token.new(**token_params)
|
|
433
480
|
end
|
|
434
481
|
|
|
435
482
|
# Build the base URL for the API connection
|
|
@@ -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
|
|
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
|
data/lib/jamf/api/connection.rb
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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],
|
|
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,
|
|
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
|
-
|
|
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.
|
|
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
|
-
# - '/
|
|
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.
|
|
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.
|
|
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.
|