// Copyright 2023 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.
{
    include: [ "inspect/offer.shard.cml" ],
    collections: [
        {
            name: "fxfs-crypt",
            durability: "transient",
        },
    ],
    capabilities: [
        {
            directory: "blob",
            rights: [ "rw*" ],
            path: "/fs/blob/root",
        },
        {
            directory: "blob-exec",
            rights: [
                "execute",
                "rw*",
            ],
            path: "/fs/blob/root",
        },
        {
            protocol: [ "fuchsia.update.verify.BlobfsVerifier" ],
        },
        {
            protocol: "fuchsia.fxfs.BlobCreator",
            path: "/fs/blob/svc/fuchsia.fxfs.BlobCreator",
        },
        {
            protocol: "fuchsia.fxfs.BlobReader",
            path: "/fs/blob/svc/fuchsia.fxfs.BlobReader",
        },
    ],
    use: [
        {
            protocol: "fuchsia.fs.startup.Startup",
            from: "#fxfs",
            path: "/fxfs/svc/fuchsia.fs.startup.Startup",
        },
        {
            protocol: "fuchsia.component.Realm",
            from: "framework",
        },

        // Required for inspect data and to migrate data.
        {
            directory: "root",
            from: "#fxfs",
            rights: [ "rw*" ],
            path: "/data_root",
        },
        {
            directory: "volumes",
            from: "#fxfs",
            rights: [ "rw*" ],
            path: "/volumes",
        },
    ],
    offer: [
        {
            protocol: [ "fuchsia.logger.LogSink" ],
            from: "parent",
            to: [
                "#fxfs",
                "#fxfs-crypt",
            ],
        },
        {
            protocol: [
                "fuchsia.memorypressure.Provider",
                "fuchsia.tracing.provider.Registry",
            ],
            from: "parent",
            to: "#fxfs",
            availability: "optional",
        },
        {
            service: "fuchsia.fxfs.CryptService",
            from: "#fxfs-crypt",
            to: "#fxfs",
        },
    ],
    expose: [
        {
            directory: [
                "blob",
                "blob-exec",
            ],
            from: "self",
        },
        {
            directory: "volumes",
            from: "#fxfs",
        },
        {
            protocol: "fuchsia.fxfs.Volumes",
            from: "#fxfs",
        },
        {
            protocol: "fuchsia.update.verify.BlobfsVerifier",
            from: "self",
        },
        {
            protocol: "fuchsia.fxfs.BlobCreator",
            from: "self",
        },
        {
            protocol: "fuchsia.fxfs.BlobReader",
            from: "self",
            availability: "same_as_target",
        },
    ],
}
