// 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: "2bd6cc2bd10243354b873a4ddb8a188b1d29171e26eebac06567bcdc36614af6",
            moniker: "/core/account/credential_manager",
        },
        {
            instance_id: "7db7e88479772e241229682b47f1794e12ac5d692f8d67421acd9d7ff318a975",
            moniker: "/core/account/password_authenticator",
        },
        {
            instance_id: "ee4b67bc694a8b1f502d0d73377c4e0b7a7a102470fc6abb7b1bb25a38bcda01",
            moniker: "/core/termina-guest-manager",
        },
        {
            instance_id: "f1a52f7b4d7081060a3295fd36df7b68fb0518f80aae0eae8a3fc1d55231375f",
            moniker: "/core/setui_service",
        },
        {
            instance_id: "e534c6322665ea3b4e7bf7bdce64d17bea86100be0eba25ed220a5e9b355c4ef",
            moniker: "/core/cobalt",
        },
        {
            instance_id: "20b2c7aba6793929c252d4e933b8a1537f7bfe8e208ad228c50a896a18b2c4b5",
            moniker: "/core/network/dhcpd",
        },
        {
            instance_id: "7099557fdc645e1dd520a799c0788e92184463bbe0e6fdecfc22c550a2cdb814",
            moniker: "/core/network/netstack-migration",
        },
        {
            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: "72967e62c92be6e9c6d1609eec1989be814f0daf0e9324a4d18f3d0b02a3bf94",
            moniker: "/core/tee_manager",
        },
        {
            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-update/system-updater",
        },
        {
            instance_id: "426871d8856f43fc8433ad9049bf188454d038dc6295e0c59fd3401d72f25a48",
            moniker: "/core/ui/root_presenter",
        },
        {
            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/42154033 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/42154033 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",
        },
    ],
}
