;; new_objects - a collection of types that have been introduced with ToT policy
;;   that have no analogue in 34.0 policy.  Thus, we do not need to map these types to
;;   previous ones.  Add here to pass checkapi tests.
(type new_objects)
(typeattribute new_objects)
(typeattributeset new_objects
  ( new_objects
    archive_service
    dtbo_block_device
    ota_build_prop
    snapuserd_log_data_file
    fwk_vibrator_control_service
    hal_authgraph_service
    hal_secretkeeper_service
    hal_codec2_service
    hal_macsec_service
    hal_remotelyprovisionedcomponent_avf_service
    hal_threadnetwork_service
    hidraw_device
    virtual_camera_service
    ot_daemon_service
    pm_archiving_enabled_prop
    remote_auth_service
    security_state_service
    setupwizard_mode_prop
    sysfs_sync_on_suspend
    tv_ad_service
    threadnetwork_service
    device_config_aconfig_flags_prop
    proc_memhealth
    virtual_device_native_service
    next_boot_prop
    binderfs_logs_stats
    drm_forcel3_prop
    proc_percpu_pagelist_high_fraction
    vendor_microdroid_file
  ))
