// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// This component ID index assigns instance IDs to component instances.
// A component's instance ID is used to key its storage directory.
//
// This file hosts commonly-used components from fuchsia.git. In the future,
// this file may be split out into several files based on product configuration.
//
// To add entries to this index, see https://fuchsia.dev/fuchsia-src/development/components/component_id_index#add-to-index
{
    instances: [
        {
            instance_id: "7db7e88479772e241229682b47f1794e12ac5d692f8d67421acd9d7ff318a975",
            moniker: "/core/account/password_authenticator",
        },
        {
            instance_id: "ee4b67bc694a8b1f502d0d73377c4e0b7a7a102470fc6abb7b1bb25a38bcda01",
            moniker: "/core/linux_runner",
        },
        {
            instance_id: "325b7490f2c61039b4e3e0c7a413c0197e18b1e6f83d1ba69b47790f18223432",
            appmgr_moniker: {
                url: "fuchsia-pkg://fuchsia.com/audio_core#meta/audio_core.cmx",
                realm_path: [
                    "app",
                    "sys",
                ],
            },
        },
        {
            instance_id: "e5ef2bbe9dd2b7cee87beac5e06cece13fe6f9c154b1f00abec155e6c6c9fa62",
            appmgr_moniker: {
                url: "fuchsia-pkg://fuchsia.com/archivist#meta/archivist.cmx",
                realm_path: [
                    "app",
                    "sys",
                ],
            },
        },
        {
            instance_id: "f1a52f7b4d7081060a3295fd36df7b68fb0518f80aae0eae8a3fc1d55231375f",
            moniker: "/core/setui_service",
        },
        {
            instance_id: "2e3e35640b0f45265e268204779f7314cf5acae5883ac0d028232859672a7152",
            appmgr_moniker: {
                url: "fuchsia-pkg://fuchsia.com/timezone#meta/timezone.cmx",
                realm_path: [
                    "app",
                    "sys",
                ],
            },
        },
        {
            instance_id: "e534c6322665ea3b4e7bf7bdce64d17bea86100be0eba25ed220a5e9b355c4ef",
            moniker: "/core/cobalt",
        },
        {
            instance_id: "20b2c7aba6793929c252d4e933b8a1537f7bfe8e208ad228c50a896a18b2c4b5",
            moniker: "/core/network/dhcpd",
        },
        {
            instance_id: "b63d06982a705d04fcfc5f401db2b2f9faa640fa973ff99adb4f62a39f23d24f",
            moniker: "/core/network/netcfg",
        },
        {
            instance_id: "18f6b0d52208bab5e5dd65ef6021b7e47d7a6b3d09f6668dcea18f93161e9b1d",
            moniker: "/core/wlancfg",
        },
        {
            instance_id: "83fc3d0a58182e0fc38f890a5b0965f51c1088b97f6e78c6b75f5f2fef060d8d",
            moniker: "/core/wlandevicemonitor",
        },
        {
            instance_id: "eb345fb7dcaa4260ee0c65bb73ef0ec5341b15a4f603f358d6631c4be6bf7080",
            moniker: "/core/feedback",
        },
        {
            instance_id: "bf29aeef2be5779e9181fcd68a3f6de53db15d8cc952407030063086671f2904",
            appmgr_moniker: {
                url: "fuchsia-pkg://fuchsia.com/basemgr#meta/basemgr.cmx",
                realm_path: [
                    "app",
                    "sys",
                ],
            },
        },
        {
            instance_id: "72967e62c92be6e9c6d1609eec1989be814f0daf0e9324a4d18f3d0b02a3bf94",
            moniker: "/core/tee_manager",
        },
        {
            instance_id: "ab7a3ec7a062f943c00f3f62eb1a0f4a2ad50356600efffab46c1969ce49f3d8",
            appmgr_moniker: {
                url: "fuchsia-pkg://fuchsia.com/amber#meta/system_updater.cmx",
                realm_path: [
                    "app",
                    "sys",
                ],
            },
        },
        {
            instance_id: "d577f733dfbe1787d272e43f7e4423a01108a71d7e3a89b4e97081ad39372e4e",
            moniker: "/core/pkg-resolver",
        },
        {
            instance_id: "ea59eb01e52454f12fab0b571008d2ba8518ae12508f46a3f3f0350b7bbea40f",
            moniker: "/core/stash2",
        },
        {
            instance_id: "946b2f9dbe2ee352b033a635b1c79fc680ef62f9c1b36a39e46404f95b58e6d5",
            moniker: "/core/stash",
        },
        {
            instance_id: "c1a6d0aebbf7c092c53e8e696636af8ec0629ff39b7f2e548430b0034d809da4",
            moniker: "/core/stash_secure",
        },
        {
            instance_id: "8285f9d54645ea6baa7fd7b7905c7ae89a9daf8d5172be43b2587b166fd021af",
            moniker: "/core/brightness_manager",
        },
        {
            instance_id: "f4597d9b92f6c3e4847a5bdb53ea095aee59ad07f69745ebcdb43c9f96125d73",
            moniker: "/core/factory-reset-trigger",
        },
        {
            instance_id: "5bd5150caf1ff36c0c48bd26ef276c7ebe01b17b7919dba84abed3ab7d7bd48b",
            moniker: "/core/system-updater",
        },
        {
            instance_id: "426871d8856f43fc8433ad9049bf188454d038dc6295e0c59fd3401d72f25a48",
            moniker: "/core/ui/root_presenter",
        },
        {
            instance_id: "fbd62d3fb735db534eccc2221b3bb981f50a88f60cf326f80925ccd0d0e31443",
            appmgr_moniker: {
                url: "fuchsia-pkg://fuchsia.com/ot-stack#meta/ot-stack.cmx",

                // ot-stack.cmx is launched by lowpan-spinel-driver.cmx, which is launched by sysmgr.
                realm_path: [
                    "app",
                    "sys",
                ],
            },
        },
        {
            instance_id: "76777fb21aa060c86680f0fbd7cbd4734ef6b239b429ac4d9cb2a9d08792033d",
            moniker: "/core/cobalt_system_metrics",
        },

        // An entry for `memory_monitor` is needed to preserve /cache across the v2 migration.
        // See https://fxbug.dev/74359 for more details.
        {
            instance_id: "1325984af473b7d90c8160b881d28d57e0c15a4805548092349cd262efab2677",
            moniker: "/core/memory_monitor",
        },

        // An entry for `regulatory_region` is needed to preserve /cache across the v2 migration.
        // See https://fxbug.dev/74359 for more details.
        {
            instance_id: "9b2aac8bc3465533c6d6e8261478b0ab5a5db2b32cabd3b894ed40f8a695ac0f",
            moniker: "/core/regulatory_region",
        },
        {
            instance_id: "21cfa3a89262d5a856acab7166b36af59fcdaa2227256638cf0a6202e265a199",
            moniker: "/core/session-manager/session:session",
        },
        {
            instance_id: "4d5f882f294857b5eb02688fd1e284611a4154737bd00dbb47f53aa5e1276237",
            moniker: "/core/lowpan-ot-driver",
        },
    ],
}
