ruby-jss 1.6.4 → 2.0.0b1
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/.yardopts +1 -0
- data/CHANGES.md +40 -4
- data/README-2.0.0.md +337 -0
- data/README.md +48 -34
- data/bin/cgrouper +3 -3
- data/bin/jamfHelperBackgrounder +2 -2
- data/bin/netseg-update +3 -3
- data/data/ruby-jss.conf.example +1 -1
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/account.rb +29 -22
- data/lib/{jss/api_object/advanced_search → jamf/api/classic/api_objects}/advanced_computer_search.rb +6 -6
- data/lib/{jss/api_object/advanced_search → jamf/api/classic/api_objects}/advanced_mobile_device_search.rb +6 -6
- data/lib/{jss/api_object/advanced_search → jamf/api/classic/api_objects}/advanced_user_search.rb +6 -6
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/building.rb +6 -6
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/categorizable.rb +10 -10
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/category.rb +17 -15
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/computer.rb +222 -120
- data/lib/{jss/api_object/extension_attribute → jamf/api/classic/api_objects}/computer_extension_attribute.rb +19 -19
- data/lib/{jss/api_object/group → jamf/api/classic/api_objects}/computer_group.rb +9 -8
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/computer_invitation.rb +8 -8
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/creatable.rb +22 -24
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/criteriable/criteria.rb +24 -24
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/criteriable/criterion.rb +15 -15
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/criteriable.rb +25 -28
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/department.rb +7 -7
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/directory_binding.rb +40 -40
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/directory_binding_type/active_directory.rb +47 -47
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/directory_binding_type/admitmac.rb +56 -56
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/directory_binding_type/centrify.rb +15 -15
- data/lib/{jss/api_object → jamf/api/classic/api_objects/directory_binding_type}/directory_binding_type.rb +2 -25
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/directory_binding_type/open_directory.rb +19 -19
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/directory_binding_type/powerbroker_identity_services.rb +1 -1
- data/lib/jamf/api/classic/api_objects/directory_binding_type.rb +47 -0
- data/lib/{jss/api_object/disk_encryption_configurations.rb → jamf/api/classic/api_objects/disk_encryption_configuration.rb} +14 -14
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/distribution_point.rb +41 -35
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/dock_item.rb +12 -12
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/ebook.rb +3 -3
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/extendable.rb +23 -23
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/ibeacon.rb +15 -15
- data/lib/{jss/api_object/self_servable → jamf/api/classic/api_objects}/icon.rb +8 -8
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/ldap_server.rb +45 -34
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/locatable.rb +6 -6
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/mac_application.rb +18 -18
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history/audit_event.rb +4 -4
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history/casper_imaging_log.rb +4 -5
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history/casper_remote_log.rb +4 -4
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history/computer_usage_log.rb +4 -4
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history/ebook.rb +7 -7
- data/lib/{jss/api_object/management_history/hashlike.rb → jamf/api/classic/api_objects/management_history/hash_like.rb} +3 -3
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history/mac_app_store_app.rb +4 -4
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history/mdm_command.rb +9 -9
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history/mobile_device_app.rb +4 -4
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history/policy_log.rb +5 -5
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history/screen_sharing_log.rb +4 -4
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history/user_location_change.rb +4 -4
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/management_history.rb +226 -189
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/matchable.rb +9 -6
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/mdm.rb +288 -167
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/mobile_device.rb +63 -51
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/mobile_device_application.rb +77 -35
- data/lib/{jss/api_object/configuration_profile → jamf/api/classic/api_objects}/mobile_device_configuration_profile.rb +7 -10
- data/lib/{jss/api_object/extension_attribute → jamf/api/classic/api_objects}/mobile_device_extension_attribute.rb +19 -19
- data/lib/{jss/api_object/group → jamf/api/classic/api_objects}/mobile_device_group.rb +8 -8
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/netboot_server.rb +6 -6
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/network_segment.rb +75 -61
- data/lib/{jss/api_object/configuration_profile → jamf/api/classic/api_objects}/osx_configuration_profile.rb +7 -7
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/package.rb +83 -74
- data/lib/{jss/api_object/patch_source → jamf/api/classic/api_objects}/patch_external_source.rb +9 -9
- data/lib/{jss/api_object/patch_source → jamf/api/classic/api_objects}/patch_internal_source.rb +5 -5
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/patch_policy.rb +70 -68
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/patch_title/version.rb +15 -15
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/patch_title.rb +76 -64
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/peripheral.rb +24 -24
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/peripheral_type.rb +20 -20
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/policy.rb +121 -129
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/printer.rb +52 -52
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/purchasable.rb +6 -6
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/removable_macaddr.rb +7 -7
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/restricted_software.rb +21 -21
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/scopable/scope.rb +69 -64
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/scopable.rb +11 -13
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/script.rb +22 -22
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/self_servable.rb +49 -47
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/sitable.rb +8 -8
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/site.rb +6 -6
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/software_update_server.rb +5 -5
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/updatable.rb +13 -13
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/uploadable.rb +71 -29
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/user.rb +18 -18
- data/lib/{jss/api_object/extension_attribute → jamf/api/classic/api_objects}/user_extension_attribute.rb +12 -12
- data/lib/{jss/api_object/group → jamf/api/classic/api_objects}/user_group.rb +7 -7
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/vpp_account.rb +15 -15
- data/lib/{jss/api_object → jamf/api/classic/api_objects}/vppable.rb +5 -5
- data/lib/{jss/api_object/webhook.rb → jamf/api/classic/api_objects/web_hook.rb} +15 -15
- data/lib/{jss/api_object → jamf/api/classic/base_classes}/advanced_search.rb +36 -40
- data/lib/{jss → jamf/api/classic/base_classes}/api_object.rb +320 -280
- data/lib/{jss/api_object → jamf/api/classic/base_classes}/configuration_profile.rb +13 -16
- data/lib/{jss/api_object → jamf/api/classic/base_classes}/extension_attribute.rb +55 -59
- data/lib/{jss/api_object → jamf/api/classic/base_classes}/group.rb +97 -78
- data/lib/{jss/api_object → jamf/api/classic/base_classes}/patch_source.rb +107 -87
- data/lib/{jss → jamf/api/classic}/xml_workaround.rb +12 -12
- data/lib/jamf/api/connection/attributes.rb +224 -0
- data/lib/jamf/api/connection/cache.rb +148 -0
- data/lib/jamf/api/connection/classic_api.rb +288 -0
- data/lib/jamf/api/connection/connect.rb +538 -0
- data/lib/jamf/api/connection/constants.rb +112 -0
- data/lib/jamf/api/connection/default_connection.rb +103 -0
- data/lib/jamf/api/connection/jamf_pro_api.rb +174 -0
- data/lib/jamf/api/connection/jamf_pro_api_error.rb +109 -0
- data/lib/jamf/api/connection/token.rb +295 -99
- data/lib/jamf/api/connection.rb +189 -818
- data/lib/jamf/api/jamf_pro/api_objects/computer_prestage.rb +82 -0
- data/lib/jamf/api/jamf_pro/api_objects/device_enrollment.rb +358 -0
- data/lib/jamf/api/jamf_pro/api_objects/inventory_preload_record.rb +172 -0
- data/lib/jamf/api/jamf_pro/api_objects/jp_building.rb +116 -0
- data/lib/jamf/api/jamf_pro/api_objects/mobile_device_prestage.rb +87 -0
- data/lib/jamf/api/jamf_pro/base_classes/oapi_object.rb +614 -0
- data/lib/jamf/api/{mixins → jamf_pro/mixins}/bulk_deletable.rb +2 -1
- data/lib/jamf/api/jamf_pro/mixins/change_log.rb +246 -0
- data/lib/jamf/api/jamf_pro/mixins/collection_resource.rb +762 -0
- data/lib/jamf/api/{mixins → jamf_pro/mixins}/filterable.rb +21 -14
- data/lib/jamf/api/{mixins → jamf_pro/mixins}/immutable.rb +6 -8
- data/lib/jamf/api/jamf_pro/mixins/jpapi_resource.rb +167 -0
- data/lib/jamf/api/{mixins → jamf_pro/mixins}/lockable.rb +29 -3
- data/lib/jamf/api/jamf_pro/mixins/macos_managed_updates.rb +168 -0
- data/lib/jamf/api/jamf_pro/mixins/prestage.rb +356 -0
- data/lib/jamf/api/{mixins → jamf_pro/mixins}/sortable.rb +7 -17
- data/lib/jamf/api/{mixins → jamf_pro/mixins}/uncreatable.rb +2 -2
- data/lib/jamf/api/{mixins → jamf_pro/mixins}/undeletable.rb +2 -2
- data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_preview_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/access_groups_v2_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/account.rb +159 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/account_driven_user_enrollment_session_token_settings.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/account_group.rb +123 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences.rb +107 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v1.rb +105 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/account_preferences_v4.rb +117 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_history.rb +160 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_history_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/active_patch_summary.rb +131 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/admin_account.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search.rb +116 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_criteria_choices.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_search_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search.rb +116 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/advanced_user_content_search_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/android_details.rb +162 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/api_error.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/api_error_cause.rb +106 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_analytics_setting.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_dynamics_config.rb +133 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_path.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field.rb +114 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_form_input_field_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/app_request_settings.rb +104 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/apple_tv_details.rb +132 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/application_attributes.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/application_configuration.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/assign_remove_profile_response_sync_state.rb +112 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/attributes.rb +100 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account.rb +158 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/auth_account_v1.rb +158 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/auth_token_v1.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/authorization.rb +116 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/authorization_v1.rb +116 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/available_updates.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_ad_migration_report_process_status.rb +115 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_ad_migration_report_request.rb +102 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_request.rb +92 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_configuration_update.rb +92 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_mappings.rb +157 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration.rb +146 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_request.rb +145 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/azure_server_configuration_update.rb +131 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/branding_image_url.rb +86 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/building.rb +137 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/building_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cache_settings.rb +149 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/categories_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/category.rb +103 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_details.rb +88 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_identity_v2.rb +107 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_key.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/certificate_record.rb +146 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/classic_ldap_mappings.rb +168 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/client_check_in_v2.rb +164 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/client_check_in_v3.rb +134 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common.rb +108 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_request.rb +97 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_id_p_common_response.rb +108 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_pool_statistics.rb +170 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_connection_status.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore.rb +102 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_keystore_file.rb +103 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_request.rb +101 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_mappings_response.rb +101 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_request.rb +151 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_response.rb +148 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/cloud_ldap_server_update.rb +148 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_application.rb +124 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_attachment.rb +102 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_certificate.rb +151 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_configuration_profile.rb +118 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching.rb +372 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_alert.rb +120 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_cache_detail.rb +97 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error.rb +98 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_data_migration_error_user_info.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent.rb +131 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_alert.rb +105 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_capabilities.rb +124 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_details.rb +118 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_content_caching_parent_local_network.rb +97 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk.rb +143 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_disk_encryption.rb +120 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_extension_attribute.rb +175 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_font.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general.rb +230 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_general_update.rb +112 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_group.rb +96 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware.rb +264 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_hardware_update.rb +106 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_ibeacon.rb +81 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory.rb +275 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_preferences.rb +165 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_collection_settings.rb +108 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_recovery_lock_password_response.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_inventory_update_request.rb +124 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_licensed_software.rb +88 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_local_user_account.rb +189 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_location.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_mdm_capability.rb +88 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system.rb +132 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_operating_system_update.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_overview.rb +179 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_package_receipts.rb +97 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition.rb +145 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_encryption.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_partition_file_vault2_state.rb +97 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_plugin.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage.rb +106 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_search_results_v2.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_prestage_v2.rb +129 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_printer.rb +99 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_purchase.rb +158 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_remote_management.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_section.rb +109 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_security.rb +179 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_service.rb +81 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_software_update.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_storage.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computer_user_and_location.rb +131 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/computers_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_profile.rb +102 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/configuration_search_results.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_candidate_request.rb +123 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_response.rb +122 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_status_response.rb +85 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/connection_configuration_update_request.rb +109 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/country.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/country_codes.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/create_path.rb +97 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/csa_token.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/current_account.rb +159 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/current_authorization.rb +108 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/data_roaming_setting.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/database_password.rb +88 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/day_of_week.rb +92 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/delete_user_command.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/department.rb +97 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/departments_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task.rb +129 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/deployment_task_search_results.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_communication_settings.rb +128 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_compliance_information.rb +117 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device.rb +162 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_device_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_body.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_disown_response.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance.rb +163 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_instance_sync_status.rb +98 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage.rb +215 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_prestage_v2.rb +234 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/device_enrollment_token.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/diagnostic_submission_setting.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ebook.rb +152 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_exclusions.rb +137 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_limitations.rb +97 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_scope.rb +170 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ebook_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enable_lost_mode_command.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/engage.rb +84 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_preview.rb +141 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_access_group_v2.rb +132 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization.rb +106 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_branding_settings.rb +111 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependencies.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_dependency.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_ldap_group_access.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_ldap_auth.rb +121 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_list.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_sso_auth.rb +113 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_panel_text.rb +112 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_search_results_v2.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_customization_v2.rb +116 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_method.rb +97 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_process_text_object.rb +346 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/enrollment_settings_v2.rb +273 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/export_field.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/export_parameters.rb +121 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/extension_attribute.rb +115 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/extension_attribute_v2.rb +116 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/external_recipient.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_delete.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/file_attachment_v2.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/filter.rb +104 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/font_path.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage.rb +105 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_computer_prestage_v2.rb +104 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_ldap_auth.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_sso_auth.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_enrollment_customization_panel_text.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage.rb +105 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/get_mobile_device_prestage_v2.rb +103 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/group_mappings.rb +138 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/group_membership.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search.rb +106 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_request.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/group_test_search_response.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results.rb +137 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/history_search_results_v1.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/href_response.rb +168 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/icon_response.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/id_and_name.rb +92 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/id_and_name_v2.rb +88 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ids.rb +99 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/initialize.rb +133 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/initialize_v1.rb +133 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/install_package.rb +103 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/integer_wrapper.rb +84 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/internal_recipient.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_information.rb +113 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_error.rb +123 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_error_cause.rb +105 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_csv_validation_success.rb +86 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_extension_attribute_column_result.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_invalid_csv_response.rb +88 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record.rb +248 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_search_results_v2.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/inventory_preload_record_v2.rb +263 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_configuration.rb +129 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ios_branding_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ios_details.rb +255 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ios_details_v2.rb +255 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_application_response.rb +95 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_nation_credentials.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_package_response.rb +107 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_information.rb +124 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_information_v2.rb +124 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_server_url.rb +92 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_pro_version.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/jamf_protect_plan.rb +125 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/language_code.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_request.rb +99 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_response.rb +101 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_configuration_update.rb +99 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group.rb +107 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_group_search_results.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/ldap_server.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile.rb +126 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/linked_connect_profile_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/locale.rb +88 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/location.rb +125 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/location_information.rb +146 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/location_information_v2.rb +146 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/location_v2.rb +124 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_configuration.rb +118 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_branding_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update.rb +138 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mac_os_managed_software_update_response.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/markdown.rb +84 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_client_type.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command.rb +109 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_client.rb +88 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_request.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_state.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mdm_command_type.rb +172 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/membership_mappings.rb +84 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_request.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/membership_test_search_response.rb +88 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/memcached_endpoints.rb +113 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device.rb +153 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_application.rb +100 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_attachment.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_attachment_v2.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate_v1.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_certificate_v2.rb +146 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details.rb +235 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_get_v2.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_details_v2.rb +259 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_ebook.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_extension_attribute_results.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_group.rb +96 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage.rb +136 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_name_v2.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names.rb +118 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_names_v2.rb +118 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_search_results_v2.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_prestage_v2.rb +175 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_params.rb +144 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_search_results_v2.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/mobile_device_v2.rb +158 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/network.rb +171 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/network_v2.rb +179 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/notification.rb +96 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/notification_type.rb +141 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/notification_v1.rb +96 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/object_history.rb +133 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_note.rb +133 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/object_history_v1.rb +106 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/order_by.rb +95 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/package_manifest.rb +148 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/parent_app.rb +131 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_ids_on_dashboard.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_attempt.rb +102 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_attempt_action.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log.rb +124 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_log_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_on_dashboard.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_policy_summary.rb +146 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/patch_version.rb +96 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/personal_hotspot_setting.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/plan_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/plugin_path.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/policy_properties_v1.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/post_computer_prestage_v2.rb +85 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependencies.rb +85 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_dependency.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment.rb +95 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_file_attachment_v2.rb +95 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information.rb +174 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_purchasing_information_v2.rb +174 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope.rb +84 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_assignment_v2.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response.rb +109 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_response_v2.rb +109 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_update.rb +113 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_scope_v2.rb +84 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status.rb +98 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/prestage_sync_status_v2.rb +98 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/process_texts_search_results.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/protect_registration_request.rb +98 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/protect_settings_response.rb +141 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/protect_updatable_settings_request.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/provisioning_profile.rb +95 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/purchasing.rb +153 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/purchasing_v2.rb +153 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/put_computer_prestage_v2.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/put_mobile_device_prestage_v2.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/recalculation_results.rb +92 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/recipient.rb +94 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/recipients.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/redeploy_jamf_management_framework_response.rb +88 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/reenrollment.rb +117 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_response.rb +107 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/remote_administration_search_results.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/renew_mdm_profile_response.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/restart_device_command.rb +95 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/retry_patch_policy_params.rb +97 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/safelisted_app.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/script.rb +192 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/scripts_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/search_active_patch_history_params.rb +121 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/search_patch_policy_log_params.rb +121 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/security.rb +130 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/security_v2.rb +129 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_install_settings.rb +92 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_interaction_settings.rb +122 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_login_settings.rb +113 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/self_service_settings.rb +100 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/session.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/session_candidate_request.rb +108 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/session_details.rb +175 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/session_details_search_results.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/session_status.rb +98 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/set_recovery_lock_command.rb +82 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/settings_command.rb +167 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/shared_device_configuration.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/signature.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/site.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/smart_search_criterion.rb +118 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/software_title_configuration.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/software_title_patch_policy_summaries.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/software_update_settings.rb +88 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore.rb +128 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_cert_parse_response.rb +130 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_details.rb +107 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_parse.rb +103 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response.rb +120 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_response_with_details.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_keystore_with_details.rb +93 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_metadata_url.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/sso_settings.rb +240 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/startup_status.rb +185 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/static_user_group.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity.rb +107 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_certificate_upload.rb +99 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_create.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/supervision_identity_update.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_features.rb +105 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_request.rb +108 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/teacher_settings_response.rb +122 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/time_frame.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/time_zone.rb +107 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/tv_os_details.rb +140 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/udids.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_apple_tv.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_ios.rb +81 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_ios_v2.rb +81 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_mobile_device.rb +122 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_mobile_device_v2.rb +137 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/update_tv_os.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/user_attributes.rb +117 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/user_mappings.rb +193 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search.rb +112 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_request.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/user_test_search_response.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/v1_site.rb +91 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_ca_record.rb +147 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_pki_payload_record_search_results.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/venafi_service_status.rb +83 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/verbose_package_deployment_response.rb +90 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/voice_roaming_setting.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_content.rb +153 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location.rb +86 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_list_view.rb +171 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_patch.rb +111 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_location_post.rb +114 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_locations.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription.rb +86 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscription_base.rb +127 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/volume_purchasing_subscriptions.rb +89 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/vpp_admin_account.rb +119 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/vpp_token_subscription.rb +123 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas/web_link.rb +87 -0
- data/lib/jamf/api/jamf_pro/oapi_schemas.rb +35 -0
- data/lib/jamf/api/jamf_pro/other_classes/change_log_entry.rb +37 -0
- data/lib/jamf/api/{attribute_classes → jamf_pro/other_classes}/ip_address.rb +2 -8
- data/lib/jamf/api/jamf_pro/other_classes/pager.rb +257 -0
- data/lib/jamf/api/{attribute_classes → jamf_pro/other_classes}/timestamp.rb +18 -14
- data/lib/jamf/{api/mixins/base_class.rb → base_class.rb} +8 -8
- data/lib/jamf/client/jamf_binary.rb +104 -99
- data/lib/jamf/client/jamf_helper.rb +274 -256
- data/lib/jamf/client/management_action.rb +84 -75
- data/lib/jamf/client.rb +15 -86
- data/lib/jamf/composer.rb +5 -5
- data/lib/jamf/configuration.rb +219 -196
- data/lib/jamf/{api/json_objects/prestage_sync_status.rb → constants.rb} +15 -32
- data/lib/{jss → jamf}/db_connection.rb +23 -31
- data/lib/{jpapi.rb → jamf/deprecations/deprecated_api_constant.rb} +5 -4
- data/lib/{jss/ruby_extensions/string.rb → jamf/deprecations/deprecated_config_constant.rb} +4 -12
- data/lib/jamf/exceptions.rb +14 -15
- data/lib/jamf/oapi_validate.rb +502 -0
- data/lib/jamf/ruby_extensions/array/predicates.rb +3 -1
- data/lib/jamf/ruby_extensions/array/utils.rb +2 -11
- data/lib/jamf/ruby_extensions/array.rb +1 -1
- data/lib/jamf/ruby_extensions/filetest/predicates.rb +2 -1
- data/lib/jamf/ruby_extensions/filetest.rb +1 -1
- data/lib/jamf/ruby_extensions/hash/{backports.rb → utils.rb} +53 -34
- data/lib/jamf/ruby_extensions/hash.rb +3 -3
- data/lib/jamf/ruby_extensions/ipaddr/utils.rb +7 -4
- data/lib/jamf/ruby_extensions/ipaddr.rb +2 -2
- data/lib/jamf/ruby_extensions/object/predicates.rb +3 -1
- data/lib/jamf/ruby_extensions/object.rb +1 -1
- data/lib/jamf/ruby_extensions/pathname/predicates.rb +3 -1
- data/lib/jamf/ruby_extensions/pathname/utils.rb +11 -5
- data/lib/jamf/ruby_extensions/pathname.rb +1 -1
- data/lib/jamf/ruby_extensions/string/conversions.rb +16 -1
- data/lib/jamf/ruby_extensions/string/predicates.rb +3 -1
- data/lib/jamf/ruby_extensions/string.rb +1 -3
- data/lib/{jss/ruby_extensions/time.rb → jamf/ruby_extensions/time/utils.rb} +40 -25
- data/lib/{jss/version.rb → jamf/ruby_extensions/time.rb} +7 -6
- data/lib/jamf/ruby_extensions.rb +9 -9
- data/lib/jamf/utility.rb +626 -410
- data/lib/jamf/validate.rb +86 -125
- data/lib/jamf/version.rb +3 -3
- data/lib/jamf.rb +76 -131
- data/lib/jss-api.rb +2 -2
- data/lib/jss.rb +3 -215
- data/lib/ruby-jss.rb +2 -2
- data/lib/zeitwerk_config.rb +163 -0
- data/test/README-TEST.md +65 -0
- data/test/bin/runtests +97 -130
- data/test/lib/jamf_test/APITest.rb +106 -0
- data/{lib/jss/ruby_extensions/filetest.rb → test/lib/jamf_test/advanced_search.rb} +16 -20
- data/test/lib/jamf_test/auth.rb +267 -0
- data/test/lib/jamf_test/collection_tests.rb +388 -0
- data/test/lib/jamf_test/prestage_tests.rb +135 -0
- data/test/lib/{testhelper.rb → jamf_test.rb} +15 -12
- data/{lib/jss/ruby_extensions.rb → test/tests/advanced_computer_search.rb} +11 -12
- 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/category.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/device_enrollment.rb +101 -0
- data/test/tests/inventory_preload_record.rb +131 -0
- data/test/tests/jp_building.rb +41 -0
- data/test/tests/mobile_device.rb +41 -0
- data/test/tests/mobile_device_prestage.rb +37 -0
- data/test/tests/policy.rb +151 -0
- metadata +654 -213
- data/lib/jamf/api/base_classes/collection_resource.rb +0 -612
- data/lib/jamf/api/base_classes/json_object.rb +0 -1103
- data/lib/jamf/api/base_classes/prestage.rb +0 -503
- data/lib/jamf/api/base_classes/resource.rb +0 -259
- data/lib/jamf/api/base_classes/singleton_resource.rb +0 -88
- data/lib/jamf/api/connection/api_error.rb +0 -111
- data/lib/jamf/api/connection/api_error_styleguide.rb +0 -96
- data/lib/jamf/api/json_objects/change_log_entry.rb +0 -77
- data/lib/jamf/api/json_objects/country.rb +0 -51
- data/lib/jamf/api/json_objects/device_enrollment_device.rb +0 -165
- data/lib/jamf/api/json_objects/device_enrollment_device_sync_state.rb +0 -81
- data/lib/jamf/api/json_objects/device_enrollment_sync_status.rb +0 -71
- data/lib/jamf/api/json_objects/inventory_preload_extension_attribute.rb +0 -57
- data/lib/jamf/api/json_objects/locale.rb +0 -59
- data/lib/jamf/api/json_objects/md_prestage_name.rb +0 -57
- data/lib/jamf/api/json_objects/md_prestage_names.rb +0 -82
- data/lib/jamf/api/json_objects/md_prestage_skip_setup_items.rb +0 -214
- data/lib/jamf/api/json_objects/prestage_assignment.rb +0 -76
- data/lib/jamf/api/json_objects/prestage_location.rb +0 -104
- data/lib/jamf/api/json_objects/prestage_purchasing_data.rb +0 -132
- data/lib/jamf/api/json_objects/prestage_scope.rb +0 -57
- data/lib/jamf/api/json_objects/time_zone.rb +0 -105
- data/lib/jamf/api/mixins/change_log.rb +0 -288
- data/lib/jamf/api/mixins/extendable.rb +0 -75
- data/lib/jamf/api/mixins/pageable.rb +0 -208
- data/lib/jamf/api/mixins/searchable.rb +0 -202
- data/lib/jamf/api/resources/collection_resources/building.rb +0 -121
- data/lib/jamf/api/resources/collection_resources/category.rb +0 -83
- data/lib/jamf/api/resources/collection_resources/computer_prestage.rb +0 -89
- data/lib/jamf/api/resources/collection_resources/department.rb +0 -78
- data/lib/jamf/api/resources/collection_resources/device_enrollment.rb +0 -384
- data/lib/jamf/api/resources/collection_resources/inventory_preload_record.rb +0 -289
- data/lib/jamf/api/resources/collection_resources/mobile_device_prestage.rb +0 -143
- data/lib/jamf/api/resources/collection_resources/script.rb +0 -226
- data/lib/jamf/api/resources/singleton_resources/app_store_country_codes.rb +0 -141
- data/lib/jamf/api/resources/singleton_resources/locales.rb +0 -155
- data/lib/jamf/api/resources/singleton_resources/time_zones.rb +0 -213
- data/lib/jamf/compatibility.rb +0 -88
- data/lib/jamf/ruby_extensions/dig.rb +0 -52
- data/lib/jamf/ruby_extensions/string/backports.rb +0 -66
- data/lib/jss/api_connection.rb +0 -1029
- data/lib/jss/api_object/app_store_country_codes.rb +0 -298
- data/lib/jss/api_object/computer/application_installs.rb +0 -118
- data/lib/jss/client/jamf_binary.rb +0 -132
- data/lib/jss/client/jamf_helper.rb +0 -298
- data/lib/jss/client/management_action.rb +0 -113
- data/lib/jss/client.rb +0 -301
- data/lib/jss/compatibility.rb +0 -88
- data/lib/jss/composer.rb +0 -190
- data/lib/jss/configuration.rb +0 -319
- data/lib/jss/exceptions.rb +0 -115
- data/lib/jss/ruby_extensions/array.rb +0 -52
- data/lib/jss/ruby_extensions/hash.rb +0 -140
- data/lib/jss/ruby_extensions/ipaddr.rb +0 -92
- data/lib/jss/ruby_extensions/object.rb +0 -19
- data/lib/jss/ruby_extensions/pathname.rb +0 -78
- data/lib/jss/ruby_extensions/string/backports.rb +0 -68
- data/lib/jss/ruby_extensions/string/conversions.rb +0 -69
- data/lib/jss/ruby_extensions/string/predicates.rb +0 -57
- data/lib/jss/server.rb +0 -146
- data/lib/jss/utility.rb +0 -672
- data/lib/jss/validate.rb +0 -248
- data/test/README.md +0 -147
- data/test/lib/testhelper/auth.rb +0 -275
- data/test/lib/testhelper/patch_mgmt.rb +0 -123
- data/test/specs/api_connection_spec.rb +0 -57
- data/test/specs/patch01_source_spec.rb +0 -54
- data/test/specs/patch02_internal_source_spec.rb +0 -88
- data/test/specs/patch03_external_source_spec.rb +0 -120
- data/test/specs/patch04_titles_spec.rb +0 -207
- data/test/specs/patch05_policies_spec.rb +0 -119
- data/test/specs/patch06_cleanup_spec.rb +0 -52
- data/test/specs/policy_spec.rb +0 -112
|
@@ -1,612 +0,0 @@
|
|
|
1
|
-
# Copyright 2020 Pixar
|
|
2
|
-
|
|
3
|
-
#
|
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "Apache License")
|
|
5
|
-
# with the following modification; you may not use this file except in
|
|
6
|
-
# compliance with the Apache License and the following modification to it:
|
|
7
|
-
# Section 6. Trademarks. is deleted and replaced with:
|
|
8
|
-
#
|
|
9
|
-
# 6. Trademarks. This License does not grant permission to use the trade
|
|
10
|
-
# names, trademarks, service marks, or product names of the Licensor
|
|
11
|
-
# and its affiliates, except as required to comply with Section 4(c) of
|
|
12
|
-
# the License and to reproduce the content of the NOTICE file.
|
|
13
|
-
#
|
|
14
|
-
# You may obtain a copy of the Apache License at
|
|
15
|
-
#
|
|
16
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
#
|
|
18
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
# distributed under the Apache License with the above modification is
|
|
20
|
-
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
21
|
-
# KIND, either express or implied. See the Apache License for the specific
|
|
22
|
-
# language governing permissions and limitations under the Apache License.
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
|
|
26
|
-
# The module
|
|
27
|
-
module Jamf
|
|
28
|
-
|
|
29
|
-
# A Collection Resource in Jamf Pro
|
|
30
|
-
#
|
|
31
|
-
# See {Jamf::Resource} for general info about API resources.
|
|
32
|
-
#
|
|
33
|
-
# Collection resources have more than one resource within them, and those
|
|
34
|
-
# can (usually) be created and deleted as well as fetched and updated.
|
|
35
|
-
# The entire collection (or a part of it) can also be retrieved as an Array.
|
|
36
|
-
# When the whole collection is retrieved, the result may be cached for future
|
|
37
|
-
# use.
|
|
38
|
-
#
|
|
39
|
-
# # Subclassing
|
|
40
|
-
#
|
|
41
|
-
# ## Creatability, & Deletability
|
|
42
|
-
#
|
|
43
|
-
# Sometimes the API doesn't support creation of new members of the collection.
|
|
44
|
-
# If that's the case, just extend the subclass with Jamf::UnCreatable
|
|
45
|
-
# and the '.create' class method will raise an error.
|
|
46
|
-
#
|
|
47
|
-
# Similarly for deletion of members: if the API doesn't have a way to delete
|
|
48
|
-
# them, extend the subclass with Jamf::UnDeletable
|
|
49
|
-
#
|
|
50
|
-
# See also Jamf::JSONObject, which talks about extending subclasses
|
|
51
|
-
# with Jamf::Immutable
|
|
52
|
-
#
|
|
53
|
-
# ## Bulk Deletion
|
|
54
|
-
#
|
|
55
|
-
# Some collection resources have a resource for bulk deletion, passing in
|
|
56
|
-
# a JSON array of ids to delete.
|
|
57
|
-
#
|
|
58
|
-
# If so, just define a BULK_DELETE_RSRC, and the .delete class method
|
|
59
|
-
# will use it, rather than making multiple calls to delete individual
|
|
60
|
-
# items. See Jamf::Category::BULK_DELETE_RSRC for an example
|
|
61
|
-
#
|
|
62
|
-
# @abstract
|
|
63
|
-
#
|
|
64
|
-
class CollectionResource < Jamf::Resource
|
|
65
|
-
|
|
66
|
-
extend Jamf::BaseClass
|
|
67
|
-
extend Jamf::Pageable
|
|
68
|
-
extend Jamf::Sortable
|
|
69
|
-
extend Jamf::Filterable
|
|
70
|
-
|
|
71
|
-
include Comparable
|
|
72
|
-
|
|
73
|
-
# Public Class Methods
|
|
74
|
-
#####################################
|
|
75
|
-
|
|
76
|
-
# @return [Array<Symbol>] the attribute names that are marked as identifiers
|
|
77
|
-
#
|
|
78
|
-
def self.identifiers
|
|
79
|
-
self::OBJECT_MODEL.select { |_attr, deets| deets[:identifier] }.keys
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def self.count(cnx: Jamf.cnx)
|
|
83
|
-
collection_count(rsrc_path, cnx: Jamf.cnx)
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
# Get all instances of a CollectionResource, possibly limited by a filter.
|
|
88
|
-
#
|
|
89
|
-
# When called without specifying paged:, sort:, or filter: (see below)
|
|
90
|
-
# this method will return a single Array of all items of its
|
|
91
|
-
# CollectionResouce subclass, in the server's default sort order. This
|
|
92
|
-
# full list is cached for future use (see Caching, below)
|
|
93
|
-
#
|
|
94
|
-
# However, the Array can be sorted by the server, filtered to contain only
|
|
95
|
-
# matching objects, or 'paged', i.e. retrieved in successive Arrays of a
|
|
96
|
-
# certain size.
|
|
97
|
-
#
|
|
98
|
-
# Sorting, filtering, and paging can all be used at the same time.
|
|
99
|
-
#
|
|
100
|
-
# #### Server-side Sorting
|
|
101
|
-
#
|
|
102
|
-
# Sorting criteria can be provided in the String format 'property:direction',
|
|
103
|
-
# where direction is 'asc' or 'desc' E.g.
|
|
104
|
-
# "username:asc"
|
|
105
|
-
#
|
|
106
|
-
# Multiple properties are supported, either as separate strings in an Array,
|
|
107
|
-
# or a single string, comma separated. E.g.
|
|
108
|
-
#
|
|
109
|
-
# "username:asc,timestamp:desc"
|
|
110
|
-
# is the same as
|
|
111
|
-
# ["username:asc", "timestamp:desc"]
|
|
112
|
-
#
|
|
113
|
-
# which will sort by username alphabetically, and within each username,
|
|
114
|
-
# sort by timestamp newest first.
|
|
115
|
-
#
|
|
116
|
-
# Please see the JamfPro API documentation for the resource for details
|
|
117
|
-
# about available sorting properties and default sorting criteria
|
|
118
|
-
#
|
|
119
|
-
# #### Filtering
|
|
120
|
-
#
|
|
121
|
-
# Some CollectionResouces support RSQL filters to limit which objects
|
|
122
|
-
# are returned. These filters can be applied using the filter: parameter,
|
|
123
|
-
# in which case this `all` method will return `all that match the filter`.
|
|
124
|
-
#
|
|
125
|
-
# If the resource doesn't support filters, the filter parameter is ignored.
|
|
126
|
-
#
|
|
127
|
-
# Please see the JamfPro API documentation for the resource to see if
|
|
128
|
-
# filters are supported, and a list of available fields.
|
|
129
|
-
#
|
|
130
|
-
# #### Paging
|
|
131
|
-
#
|
|
132
|
-
# To reduce server load and local memory usage, you can request the results
|
|
133
|
-
# in 'pages', i.e. successivly retrieved Arrays, using the paged: and page_size:
|
|
134
|
-
# parameters.
|
|
135
|
-
#
|
|
136
|
-
# When paged: is truthy, the call to `all` returns the first group of objects
|
|
137
|
-
# containing however many are specified by page_size: The default page size
|
|
138
|
-
# is 100, the minimum is 1, and the maximum is 2000.
|
|
139
|
-
#
|
|
140
|
-
# Once you have made a paged call to `all`, you must use the `next_page_of_all`
|
|
141
|
-
# method to get the next Array of objects. That method merely repeats the last
|
|
142
|
-
# request made by `all` after incrementing the page number by 1.
|
|
143
|
-
# When `next_page_of_all` returns an empty array, you have retrieved all
|
|
144
|
-
# availalble objects.
|
|
145
|
-
#
|
|
146
|
-
# `next_page_of_all` always reflects the last _paged_ call to `all`. Any
|
|
147
|
-
# subsequent paged call to `all` will reset the paging process for that
|
|
148
|
-
# collection class, and any unfinished previous paged calls to `all` will
|
|
149
|
-
# be forgotten
|
|
150
|
-
#
|
|
151
|
-
# #### Instantiation
|
|
152
|
-
#
|
|
153
|
-
# All data from the API comes from the server in JSON format, mostly as
|
|
154
|
-
# JSON 'objects', which are the equivalent of ruby Hashes.
|
|
155
|
-
# When fetching an individual instance of an object from the API, ruby-jss
|
|
156
|
-
# uses the JSON Hash to create the ruby object, i.e. to 'instantiate' it as
|
|
157
|
-
# an instance of its class. Doing this for many objects can slow things down.
|
|
158
|
-
#
|
|
159
|
-
# Because of this, the 'all' method defaults to returning an Array of the
|
|
160
|
-
# minimally-processed JSON Hashes it gets from the API. If you can get your
|
|
161
|
-
# desired data from these Hashes, it's far more efficient to do so.
|
|
162
|
-
#
|
|
163
|
-
# However sometimes you really need the fully instantiated ruby objects for
|
|
164
|
-
# all of them - especially if you're using filters and not actually processing
|
|
165
|
-
# all items of the class. In such cases you can pass a truthy value to the
|
|
166
|
-
# instantiate: parameter, and the Array will contain fully instantiated
|
|
167
|
-
# ruby objects, not Hashes of API data.
|
|
168
|
-
#
|
|
169
|
-
# #### Caching
|
|
170
|
-
#
|
|
171
|
-
# When called without specifying paged:, sort:, or filter:
|
|
172
|
-
# this method will return a single Array of all items of its
|
|
173
|
-
# CollectionResouce subclass, in the server's default sort order.
|
|
174
|
-
#
|
|
175
|
-
# This Array is cached in ruby-jss, and future calls to this method without
|
|
176
|
-
# those parameters will return the cached Array. Use `refresh: true` to
|
|
177
|
-
# re-request that Array from the server. Note that the cache is of the raw
|
|
178
|
-
# JSON Hash data. Using 'instantiate:' will still be slower as each item in
|
|
179
|
-
# the cache is instantiated. See 'Instantiation' above.
|
|
180
|
-
#
|
|
181
|
-
# Some other class methods, e.g. .all_names, will generate or use this cached
|
|
182
|
-
# Array to derive their values.
|
|
183
|
-
#
|
|
184
|
-
# If any of the parameters paged:, sort:, or filter: are used, an API
|
|
185
|
-
# request is made every time, and no caches are used or stored.
|
|
186
|
-
#
|
|
187
|
-
#######
|
|
188
|
-
#
|
|
189
|
-
# @param sort [String, Array<String>] Server-side sorting criteria in the
|
|
190
|
-
# format: property:direction, where direction is 'asc' or 'desc'. Multiple
|
|
191
|
-
# properties are supported, either as separate strings in an Array, or
|
|
192
|
-
# a single string, comma separated.
|
|
193
|
-
#
|
|
194
|
-
# @param filter [String] An RSQL filter string. Not all collection resources
|
|
195
|
-
# currently support filters, and if they don't, this will be ignored.
|
|
196
|
-
#
|
|
197
|
-
# @param paged [Boolean] Defaults to false. Returns only the first page of
|
|
198
|
-
# `page_size` objects. Use {.next_page_of_all} to retrieve each successive
|
|
199
|
-
# page.
|
|
200
|
-
#
|
|
201
|
-
# @param page_size [Integer] How many items are returned per page? Minimum
|
|
202
|
-
# is 1, maximum is 2000, default is 100. Ignored unless paged: is truthy.
|
|
203
|
-
# Note: the final page may contain fewer items than the page_size
|
|
204
|
-
#
|
|
205
|
-
# @param refresh [Boolean] re-fetch and re-cache the full list of all instances.
|
|
206
|
-
# Ignored if paged:, page_size:, sort:, filter: or instantiate: are used.
|
|
207
|
-
#
|
|
208
|
-
# @param instantiate [Boolean] Defaults to false. Should the items in the
|
|
209
|
-
# returned Array(s) be ruby instances of the CollectionObject subclass, or
|
|
210
|
-
# plain Hashes of data as returned by the API?
|
|
211
|
-
#
|
|
212
|
-
# @param cnx [Jamf::Connection] The API connection to use, default: Jamf.cnx
|
|
213
|
-
#
|
|
214
|
-
# @return [Array<Hash, Jamf::CollectionResource>] The objects in the collection
|
|
215
|
-
#
|
|
216
|
-
def self.all(sort: nil, filter: nil, paged: nil, page_size: nil, refresh: false, instantiate: false, cnx: Jamf.cnx)
|
|
217
|
-
stop_if_base_class
|
|
218
|
-
|
|
219
|
-
# use the cache if not paging, filtering or sorting
|
|
220
|
-
return cached_all(refresh, instantiate, cnx) if !paged && !sort && !filter
|
|
221
|
-
|
|
222
|
-
# we are sorting, filtering or paging
|
|
223
|
-
sort = parse_collection_sort(sort)
|
|
224
|
-
filter = parse_collection_filter(filter)
|
|
225
|
-
|
|
226
|
-
result =
|
|
227
|
-
if paged
|
|
228
|
-
first_collection_page(rsrc_path, page_size, sort, filter, cnx)
|
|
229
|
-
else
|
|
230
|
-
fetch_all_collection_pages(rsrc_path, sort, filter, cnx)
|
|
231
|
-
end
|
|
232
|
-
instantiate ? result.map { |m| new m } : result
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
# PRIVATE
|
|
236
|
-
# return the cached/cachable version of .all, possibly instantiated
|
|
237
|
-
#
|
|
238
|
-
# @param refresh [Boolean] refetch the cache from the server?
|
|
239
|
-
#
|
|
240
|
-
# @param instantiate [Boolean] Return an array of instantiated objects, vs
|
|
241
|
-
# JSON hashes?
|
|
242
|
-
#
|
|
243
|
-
# @param cnx [Jamf::Connection] The Connection to use
|
|
244
|
-
#
|
|
245
|
-
# @return [Array<Hash,Object>] All the objects in the collection
|
|
246
|
-
#
|
|
247
|
-
def self.cached_all(refresh, instantiate, cnx)
|
|
248
|
-
cnx.collection_cache[self] = nil if refresh
|
|
249
|
-
unless cnx.collection_cache[self]
|
|
250
|
-
sort = nil
|
|
251
|
-
filter = nil
|
|
252
|
-
cnx.collection_cache[self] = fetch_all_collection_pages(rsrc_path, sort, filter, cnx)
|
|
253
|
-
end
|
|
254
|
-
instantiate ? cnx.collection_cache[self].map { |m| new m } : cnx.collection_cache[self]
|
|
255
|
-
end
|
|
256
|
-
private_class_method :cached_all
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
# Fetch the next page of a paged .all request. See
|
|
260
|
-
# {Jamf::Pagable.next_collection_page}
|
|
261
|
-
def self.next_page_of_all
|
|
262
|
-
next_collection_page
|
|
263
|
-
end
|
|
264
|
-
|
|
265
|
-
# An array of the ids for all collection members. According to the
|
|
266
|
-
# specs ALL collection resources must have an ID, which is used in the
|
|
267
|
-
# resource path.
|
|
268
|
-
#
|
|
269
|
-
# NOTE: This method uses the cached version of .all
|
|
270
|
-
#
|
|
271
|
-
# @param refresh (see .all)
|
|
272
|
-
#
|
|
273
|
-
# @param cnx (see .all)
|
|
274
|
-
#
|
|
275
|
-
# @return [Array<Integer>]
|
|
276
|
-
#
|
|
277
|
-
def self.all_ids(refresh = false, cnx: Jamf.cnx)
|
|
278
|
-
all(refresh: refresh, cnx: cnx).map { |m| m[:id] }
|
|
279
|
-
end
|
|
280
|
-
|
|
281
|
-
# A Hash of all members of this collection where the keys are some
|
|
282
|
-
# identifier and values are any other attribute.
|
|
283
|
-
#
|
|
284
|
-
# NOTE: This method uses the cached version of .all
|
|
285
|
-
#
|
|
286
|
-
# @param ident [Symbol] An identifier of this Class, used as the key
|
|
287
|
-
# for the mapping Hash. Aliases are acceptable, e.g. :sn for :serialNumber
|
|
288
|
-
#
|
|
289
|
-
# @param to [Symbol] The attribute to which the ident will be mapped.
|
|
290
|
-
# Aliases are acceptable, e.g. :name for :displayName
|
|
291
|
-
#
|
|
292
|
-
# @param refresh (see .all)
|
|
293
|
-
#
|
|
294
|
-
# @param cnx (see .all)
|
|
295
|
-
#
|
|
296
|
-
# @return [Hash {Symbol: Object}] A Hash of identifier mapped to attribute
|
|
297
|
-
#
|
|
298
|
-
def self.map_all(ident, to:, cnx: Jamf.cnx, refresh: false)
|
|
299
|
-
real_ident = attr_key_for_alias ident
|
|
300
|
-
raise Jamf::InvalidDataError, "No identifier #{ident} for class #{self}" unless
|
|
301
|
-
identifiers.include? real_ident
|
|
302
|
-
|
|
303
|
-
real_to = attr_key_for_alias to
|
|
304
|
-
raise Jamf::NoSuchItemError, "No attribute #{to} for class #{self}" unless self::OBJECT_MODEL.key? real_to
|
|
305
|
-
|
|
306
|
-
list = all refresh: refresh, cnx: cnx
|
|
307
|
-
to_class = self::OBJECT_MODEL[real_to][:class]
|
|
308
|
-
mapped = list.map do |i|
|
|
309
|
-
[
|
|
310
|
-
i[real_ident],
|
|
311
|
-
to_class.is_a?(Symbol) ? i[real_to] : to_class.new(i[real_to])
|
|
312
|
-
]
|
|
313
|
-
end # do i
|
|
314
|
-
mapped.to_h
|
|
315
|
-
end
|
|
316
|
-
|
|
317
|
-
# Given a key (identifier) and value for this collection, return the raw data
|
|
318
|
-
# Hash (the JSON object) for the matching API object or nil if there's no
|
|
319
|
-
# match for the given value.
|
|
320
|
-
#
|
|
321
|
-
# In general you should use this if the form:
|
|
322
|
-
#
|
|
323
|
-
# raw_data identifier: value
|
|
324
|
-
#
|
|
325
|
-
# where identifier is one of the available identifiers for this class
|
|
326
|
-
# like id:, name:, serialNumber: etc.
|
|
327
|
-
#
|
|
328
|
-
# In the unlikely event that you dont know which identifier a value is for
|
|
329
|
-
# or want to be able to take any of them without specifying, then
|
|
330
|
-
# you can use
|
|
331
|
-
#
|
|
332
|
-
# raw_data some_value
|
|
333
|
-
#
|
|
334
|
-
# If some_value is an integer or a string containing an integer, it
|
|
335
|
-
# is assumed to be an :id otherwise all the available identifers
|
|
336
|
-
# are searched, in the order you see them when you call <class>.identifiers
|
|
337
|
-
#
|
|
338
|
-
# If no matching object is found, nil is returned.
|
|
339
|
-
#
|
|
340
|
-
# Everything except :id is treated as a case-insensitive String
|
|
341
|
-
#
|
|
342
|
-
# @param value [String, Integer] The identifier value to search fors
|
|
343
|
-
#
|
|
344
|
-
# @param key: [Symbol] The identifier being used for the search.
|
|
345
|
-
# E.g. if :serialNumber, then the value must be a known serial number, it
|
|
346
|
-
# is not checked against other identifiers. Defaults to :id
|
|
347
|
-
#
|
|
348
|
-
# @param cnx: (see .all)
|
|
349
|
-
#
|
|
350
|
-
# @return [Hash, nil] the basic dataset of the matching object,
|
|
351
|
-
# or nil if it doesn't exist
|
|
352
|
-
#
|
|
353
|
-
def self.raw_data(value = nil, cnx: Jamf.cnx, **ident_and_val)
|
|
354
|
-
stop_if_base_class
|
|
355
|
-
|
|
356
|
-
# given a value with no ident key
|
|
357
|
-
return raw_data_by_value_only(value, cnx: Jamf.cnx) if value
|
|
358
|
-
|
|
359
|
-
# if we're here, we should know our ident key and value
|
|
360
|
-
ident, value = ident_and_val.first
|
|
361
|
-
raise ArgumentError, 'Required parameter "identifier: value", where identifier is id:, name: etc.' unless ident && value
|
|
362
|
-
|
|
363
|
-
return raw_data_by_id(value, cnx: cnx) if ident == :id
|
|
364
|
-
return unless identifiers.include? ident
|
|
365
|
-
|
|
366
|
-
raw_data_by_other_identifier(ident, value, cnx: cnx)
|
|
367
|
-
end
|
|
368
|
-
|
|
369
|
-
# Match the given value in all possibly identifiers
|
|
370
|
-
def self.raw_data_by_value_only(value, cnx: Jamf.cnx)
|
|
371
|
-
return raw_data_by_id(value, cnx: cnx) if value.to_s.j_integer?
|
|
372
|
-
|
|
373
|
-
identifiers.each do |ident|
|
|
374
|
-
next if ident == :id
|
|
375
|
-
|
|
376
|
-
data = raw_data_by_other_identifier(ident, value, cnx: cnx)
|
|
377
|
-
return data if data
|
|
378
|
-
end # identifiers.each
|
|
379
|
-
end
|
|
380
|
-
private_class_method :raw_data_by_value_only
|
|
381
|
-
|
|
382
|
-
# get the basic dataset by id, with optional
|
|
383
|
-
# request params to get more than basic data
|
|
384
|
-
def self.raw_data_by_id(id, request_params: nil, cnx: Jamf.cnx)
|
|
385
|
-
cnx.get "#{rsrc_path}/#{id}#{request_params}"
|
|
386
|
-
rescue => e
|
|
387
|
-
return if e.httpStatus == 404
|
|
388
|
-
|
|
389
|
-
raise e
|
|
390
|
-
end
|
|
391
|
-
private_class_method :raw_data_by_id
|
|
392
|
-
|
|
393
|
-
# Given an indentier attr. key, and a value,
|
|
394
|
-
# return the raw data where that ident has that value, or nil
|
|
395
|
-
#
|
|
396
|
-
def self.raw_data_by_other_identifier(identifier, value, refresh: true, cnx: Jamf.cnx)
|
|
397
|
-
# if the API supports filtering by this identifier, just use that
|
|
398
|
-
return all(filter: "#{identifier}=='#{value}'", paged: true, page_size: 1, cnx: cnx).first if self::OBJECT_MODEL[identifier][:filter_key]
|
|
399
|
-
|
|
400
|
-
# otherwise we have to loop thru all the objects looking for the value
|
|
401
|
-
all(refresh: refresh, cnx: cnx).each { |data| return data if data[identifier].to_s.casecmp? value.to_s }
|
|
402
|
-
|
|
403
|
-
nil
|
|
404
|
-
end
|
|
405
|
-
private_class_method :raw_data_by_other_identifier
|
|
406
|
-
|
|
407
|
-
# Look up the valid ID for any arbitrary identifier.
|
|
408
|
-
# In general you should use this if the form:
|
|
409
|
-
#
|
|
410
|
-
# valid_id identifier: value
|
|
411
|
-
#
|
|
412
|
-
# where identifier is one of the available identifiers for this class
|
|
413
|
-
# like id:, name:, serialNumber: etc.
|
|
414
|
-
#
|
|
415
|
-
# In the unlikely event that you dont know which identifier a value is for
|
|
416
|
-
# or want to be able to take any of them without specifying, then
|
|
417
|
-
# you can use
|
|
418
|
-
#
|
|
419
|
-
# valid_id some_value
|
|
420
|
-
#
|
|
421
|
-
# If some_value is an integer or a string containing an integer, it
|
|
422
|
-
# is assumed to be an id: otherwise all the available identifers
|
|
423
|
-
# are searched, in the order you see them when you call <class>.identifiers
|
|
424
|
-
#
|
|
425
|
-
# If no matching object is found, nil is returned.
|
|
426
|
-
#
|
|
427
|
-
# WARNING: Do not use this to look up ids for getting the
|
|
428
|
-
# raw API data for an object. Since this calls .raw_data
|
|
429
|
-
# itself, it is redundant to use .valid_id to get an id
|
|
430
|
-
# to then pass on to .raw_data
|
|
431
|
-
# Use raw_data directly like this:
|
|
432
|
-
# data = raw_data(ident: val)
|
|
433
|
-
#
|
|
434
|
-
#
|
|
435
|
-
# @param value [String,Integer] A value for an arbitrary identifier
|
|
436
|
-
#
|
|
437
|
-
# @param cnx [Jamf::Connection] The connection to use. default: Jamf.cnx
|
|
438
|
-
#
|
|
439
|
-
# @param ident_and_val [Hash{Symbol: String}] The identifier key and the value
|
|
440
|
-
# to look for in that key, e.g. name: 'foo' or serialNumber: 'ASDFGH'
|
|
441
|
-
#
|
|
442
|
-
# @return [String, nil] The id (integer-in-string) of the object, or nil
|
|
443
|
-
# if no match found
|
|
444
|
-
#
|
|
445
|
-
def self.valid_id(value = nil, cnx: Jamf.cnx, **ident_and_val)
|
|
446
|
-
raw_data(value, cnx: cnx, **ident_and_val)&.dig(:id)
|
|
447
|
-
end
|
|
448
|
-
|
|
449
|
-
# Bu default, subclasses are creatable, i.e. new instances can be created
|
|
450
|
-
# with .create, and added to the JSS with .save
|
|
451
|
-
# If a subclass is NOT creatble for any reason, just add
|
|
452
|
-
# extend Jamf::UnCreatable
|
|
453
|
-
# and this method will return false
|
|
454
|
-
#
|
|
455
|
-
# @return [Boolean]
|
|
456
|
-
def self.creatable?
|
|
457
|
-
true
|
|
458
|
-
end
|
|
459
|
-
|
|
460
|
-
# Make a new thing to be added to the API
|
|
461
|
-
def self.create(**params)
|
|
462
|
-
stop_if_base_class
|
|
463
|
-
|
|
464
|
-
raise Jamf::UnsupportedError, "#{self}'s are not currently creatable via the API" unless creatable?
|
|
465
|
-
|
|
466
|
-
# Which connection to use
|
|
467
|
-
cnx = params.delete :cnx
|
|
468
|
-
cnx ||= Jamf.cnx
|
|
469
|
-
|
|
470
|
-
params.delete :id # no such animal when .creating
|
|
471
|
-
params.keys.each do |param|
|
|
472
|
-
raise ArgumentError, "Unknown parameter: #{param}" unless self::OBJECT_MODEL.key? param
|
|
473
|
-
|
|
474
|
-
if params[param].is_a? Array
|
|
475
|
-
params[param].map! { |val| validate_attr param, val, cnx: cnx }
|
|
476
|
-
else
|
|
477
|
-
params[param] = validate_attr param, params[param], cnx: cnx
|
|
478
|
-
end
|
|
479
|
-
end
|
|
480
|
-
|
|
481
|
-
params[:creating_from_create] = true
|
|
482
|
-
new params, cnx: cnx
|
|
483
|
-
end
|
|
484
|
-
|
|
485
|
-
# Retrieve a member of a CollectionResource from the API
|
|
486
|
-
#
|
|
487
|
-
# To create new members to be added to the JSS, use
|
|
488
|
-
# {Jamf::CollectionResource.create}
|
|
489
|
-
#
|
|
490
|
-
# You must know the specific identifier attribute you're looking up, e.g.
|
|
491
|
-
# :id or :name or :udid, (or an aliase thereof) then you can specify it like
|
|
492
|
-
# `.fetch name: 'somename'`, or `.fetch udid: 'someudid'`
|
|
493
|
-
#
|
|
494
|
-
# @param cnx[Jamf::Connection] the connection to use to fetch the object
|
|
495
|
-
#
|
|
496
|
-
# @param ident_and_val[Hash] an identifier attribute key and a search value
|
|
497
|
-
#
|
|
498
|
-
# @return [CollectionResource] The ruby-instance of a Jamf object
|
|
499
|
-
#
|
|
500
|
-
def self.fetch(random = nil, cnx: Jamf.cnx, **ident_and_val)
|
|
501
|
-
stop_if_base_class
|
|
502
|
-
ident, value = ident_and_val.first
|
|
503
|
-
data =
|
|
504
|
-
if random
|
|
505
|
-
all.sample
|
|
506
|
-
elsif ident && value
|
|
507
|
-
raw_data(cnx: cnx, **ident_and_val)
|
|
508
|
-
end
|
|
509
|
-
raise Jamf::NoSuchItemError, "No matching #{self}" unless data
|
|
510
|
-
|
|
511
|
-
new data, cnx: cnx
|
|
512
|
-
end # fetch
|
|
513
|
-
|
|
514
|
-
# By default, CollectionResource subclass instances are deletable.
|
|
515
|
-
# If not, just extend the subclass with Jamf::UnDeletable, and this
|
|
516
|
-
# will return false, and .delete & #delete will raise errors
|
|
517
|
-
def self.deletable?
|
|
518
|
-
true
|
|
519
|
-
end
|
|
520
|
-
|
|
521
|
-
# Delete one or more objects by id
|
|
522
|
-
#
|
|
523
|
-
# @param ids [Array<String,Integer>] The ids to delete
|
|
524
|
-
#
|
|
525
|
-
# @param cnx [Jamf::Connection] The connection to use, default: Jamf.cnx
|
|
526
|
-
#
|
|
527
|
-
# @return [Array<Jamf::Connection::APIError::ErrorInfo] Info about any ids
|
|
528
|
-
# that failed to be deleted.
|
|
529
|
-
#
|
|
530
|
-
def self.delete(*ids, cnx: Jamf.cnx)
|
|
531
|
-
raise Jamf::UnsupportedError, "Deleting #{self} objects is not currently supported" unless deletable?
|
|
532
|
-
|
|
533
|
-
return bulk_delete(ids, cnx: Jamf.cnx) if ancestors.include? Jamf::BulkDeletable
|
|
534
|
-
|
|
535
|
-
errs = []
|
|
536
|
-
ids.each do |id_to_delete|
|
|
537
|
-
begin
|
|
538
|
-
cnx.delete "#{rsrc_path}/#{id_to_delete}"
|
|
539
|
-
rescue Jamf::Connection::APIError => e
|
|
540
|
-
raise e unless e.httpStatus == 404
|
|
541
|
-
|
|
542
|
-
errs += e.errors
|
|
543
|
-
end # begin
|
|
544
|
-
end # ids.each
|
|
545
|
-
errs
|
|
546
|
-
end
|
|
547
|
-
|
|
548
|
-
# Private Class Methods
|
|
549
|
-
#####################################
|
|
550
|
-
|
|
551
|
-
# TODO: better pluralizing?
|
|
552
|
-
#
|
|
553
|
-
def self.create_list_methods(attr_name, attr_def)
|
|
554
|
-
list_method_name = "all_#{attr_name}s"
|
|
555
|
-
|
|
556
|
-
define_singleton_method(list_method_name) do |refresh = false, cnx: Jamf.cnx|
|
|
557
|
-
all_list = all(refresh: refresh, cnx: cnx)
|
|
558
|
-
if attr_def[:class].is_a? Symbol
|
|
559
|
-
all_list.map { |i| i[attr_name] }.uniq
|
|
560
|
-
else
|
|
561
|
-
all_list.map { |i| attr_def[:class].new i[attr_name] }
|
|
562
|
-
end
|
|
563
|
-
end # define_singleton_method
|
|
564
|
-
|
|
565
|
-
return unless attr_def[:aliases]
|
|
566
|
-
|
|
567
|
-
# aliases - TODO: is there a more elegant way?
|
|
568
|
-
attr_def[:aliases].each do |a|
|
|
569
|
-
define_singleton_method("all_#{a}s") do |refresh = false, cnx: Jamf.cnx|
|
|
570
|
-
send list_method_name, refresh, cnx: cnx
|
|
571
|
-
end # define_singleton_method
|
|
572
|
-
end # each alias
|
|
573
|
-
end # create_list_methods
|
|
574
|
-
private_class_method :create_list_methods
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
# Instance Methods
|
|
578
|
-
#####################################
|
|
579
|
-
|
|
580
|
-
def exist?
|
|
581
|
-
!@id.nil?
|
|
582
|
-
end
|
|
583
|
-
|
|
584
|
-
def rsrc_path
|
|
585
|
-
return unless exist?
|
|
586
|
-
|
|
587
|
-
"#{self.class.rsrc_path}/#{@id}"
|
|
588
|
-
end
|
|
589
|
-
|
|
590
|
-
def delete
|
|
591
|
-
raise Jamf::UnsupportedError, "Deleting #{self} objects is not currently supported" unless self.class.deletable?
|
|
592
|
-
|
|
593
|
-
@cnx.delete rsrc_path
|
|
594
|
-
end
|
|
595
|
-
|
|
596
|
-
# Two collection resource objects are the same if their id's are the same
|
|
597
|
-
def <=>(other)
|
|
598
|
-
id <=> other.id
|
|
599
|
-
end
|
|
600
|
-
|
|
601
|
-
# Private Instance Methods
|
|
602
|
-
############################################
|
|
603
|
-
private
|
|
604
|
-
|
|
605
|
-
def create_in_jamf
|
|
606
|
-
result = @cnx.post self.class.rsrc_path, to_jamf
|
|
607
|
-
@id = result[:id]
|
|
608
|
-
end
|
|
609
|
-
|
|
610
|
-
end # class CollectionResource
|
|
611
|
-
|
|
612
|
-
end # module JAMF
|