// Copyright 2022 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 shard provides WIFI network functionality and handling OTA related features.
{
    include: [ "//src/lib/fuchsia-hyper/hyper.shard.cml" ],
    collections: [
        {
            name: "ota",
            durability: "transient",
        },
    ],
    capabilities: [
        {
            protocol: [ "fuchsia.recovery.ui.ProgressRenderer" ],
        },
    ],
    use: [
        {
            protocol: [
                "fuchsia.cobalt.AggregateAndUpload",
                "fuchsia.fshost.Admin",
                "fuchsia.hardware.power.statecontrol.Admin",
                "fuchsia.logger.Log",
                "fuchsia.metrics.MetricEventLoggerFactory",
                "fuchsia.process.Launcher",
                "fuchsia.wlan.policy.ClientListener",
                "fuchsia.wlan.policy.ClientProvider",
            ],
        },
        {
            protocol: "fuchsia.component.Realm",
            from: "framework",
        },
    ],
    offer: [
        {
            directory: "root-ssl-certificates",
            from: "parent",
            to: "#ota",
        },
        {
            directory: "dev-class-block",
            from: "parent",
            to: "#ota",
        },
        {
            directory: "config-data",
            from: "parent",
            to: "#ota",
        },
        {
            storage: "tmp",
            from: "parent",
            to: "#ota",
        },
        {
            protocol: [ "fuchsia.recovery.ui.ProgressRenderer" ],
            from: "self",
            to: "#ota",
        },
        {
            protocol: [
                "fuchsia.boot.Arguments",
                "fuchsia.boot.WriteOnlyLog",
                "fuchsia.buildinfo.Provider",
                "fuchsia.fshost.Admin",
                "fuchsia.logger.LogSink",
                "fuchsia.metrics.MetricEventLoggerFactory",
                "fuchsia.net.name.Lookup",
                "fuchsia.paver.Paver",
                "fuchsia.posix.socket.Provider",
                "fuchsia.process.Launcher",
                "fuchsia.recovery.FactoryReset",
            ],
            from: "parent",
            to: "#ota",
        },
        {
            protocol: "fuchsia.inspect.InspectSink",
            from: "parent",
            to: [ "#ota" ],
        },
    ],
}
