;; new_objects - a collection of types that have been introduced with ToT policy
;;   that have no analogue in 30.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
    ab_update_gki_prop
    adbd_config_prop
    apc_service
    apex_appsearch_data_file
    apex_art_data_file
    apex_art_staging_data_file
    apex_info_file
    apex_ota_reserved_file
    apex_scheduling_data_file
    apex_system_server_data_file
    apexd_config_prop
    app_hibernation_service
    appcompat_data_file
    arm64_memtag_prop
    artd
    artd_exec
    artd_service
    authorization_service
    bootanim_config_prop
    camerax_extensions_prop
    cgroup_desc_api_file
    cgroup_v2
    codec2_config_prop
    ctl_snapuserd_prop
    dck_prop
    debugfs_kprobes
    debugfs_mm_events_tracing
    debugfs_bootreceiver_tracing
    debugfs_restriction_prop
    device_config_profcollect_native_boot_prop
    device_config_connectivity_prop
    device_config_swcodec_native_prop
    device_state_service
    dm_user_device
    dmabuf_heap_device
    dmabuf_system_heap_device
    dmabuf_system_secure_heap_device
    domain_verification_service
    dumpstate_tmpfs
    framework_watchdog_config_prop
    fs_bpf_tethering
    fwk_stats_service
    game_service
    font_data_file
    gki_apex_prepostinstall
    gki_apex_prepostinstall_exec
    hal_audio_service
    hal_authsecret_service
    hal_audiocontrol_service
    hal_face_service
    hal_fingerprint_service
    hal_health_storage_service
    hal_memtrack_service
    hal_oemlock_service
    hint_service
    gnss_device
    gnss_time_update_service
    hal_dumpstate_config_prop
    hal_gnss_service
    hal_keymint_service
    hal_neuralnetworks_service
    hal_power_stats_service
    hal_remotelyprovisionedcomponent_service
    hal_secureclock_service
    hal_sharedsecret_service
    hal_uwb_service
    hal_weaver_service
    hw_timeout_multiplier_prop
    keystore_compat_hal_service
    keystore_maintenance_service
    keystore_metrics_service
    keystore2_key_contexts_file
    legacy_permission_service
    legacykeystore_service
    location_time_zone_manager_service
    media_communication_service
    media_metrics_service
    mediatuner_exec
    mediatuner_service
    mediatuner
    mediatranscoding_tmpfs
    memtrackproxy_service
    mm_events_config_prop
    music_recognition_service
    nfc_logs_data_file
    odrefresh
    odrefresh_exec
    odsign
    odsign_data_file
    odsign_exec
    pac_proxy_service
    permission_checker_service
    people_service
    persist_vendor_debug_wifi_prop
    postinstall_dexopt_exec
    postinstall_device_mnt_dir
    postinstall_product_mnt_dir
    postinstall_vendor_mnt_dir
    power_debug_prop
    powerstats_service
    proc_kallsyms
    proc_locks
    profcollectd
    profcollectd_data_file
    profcollectd_exec
    profcollectd_node_id_prop
    profcollectd_service
    qemu_hw_prop
    qemu_sf_lcd_density_prop
    radio_core_data_file
    reboot_readiness_service
    remote_prov_app
    remoteprovisioning_service
    resolver_service
    search_ui_service
    shell_test_data_file
    smartspace_service
    snapuserd
    snapuserd_exec
    snapuserd_socket
    soc_prop
    speech_recognition_service
    sysfs_block
    sysfs_devfreq_cur
    sysfs_devfreq_dir
    sysfs_devices_cs_etm
    sysfs_dma_heap
    sysfs_dmabuf_stats
    sysfs_uhid
    system_server_dumper_service
    system_suspend_control_internal_service
    task_profiles_api_file
    texttospeech_service
    translation_service
    update_engine_stable_service
    userdata_sysdev
    userspace_reboot_metadata_file
    uwb_service
    vcn_management_service
    vd_device
    vendor_kernel_modules
    vendor_modprobe
    vendor_uuid_mapping_config_file
    vibrator_manager_service
    virtualization_service
    vpn_management_service
    watchdog_metadata_file
    wifi_key
    zygote_config_prop))
