// 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.
{
    include: [ "syslog/client.shard.cml" ],
    program: {
        runner: "elf",
        binary: "bin/session_manager",
    },
    collections: [
        // Holds all the sessions this session_manager will create. Capabilities
        // offered to and exposed by sessions should be routed here.
        {
            name: "session",
            durability: "transient",
            persistent_storage: true,
        },
    ],
    capabilities: [
        {
            protocol: [
                "fuchsia.element.GraphicalPresenter",
                "fuchsia.element.Manager",
                "fuchsia.input.injection.InputDeviceRegistry",
                "fuchsia.session.Launcher",
                "fuchsia.session.Restarter",
                "fuchsia.sessionmanager.Startup",
            ],
        },
    ],
    use: [
        {
            // The Realm service allows session_manager to start components.
            protocol: "fuchsia.component.Realm",
            from: "framework",
        },
        {
            protocol: [ "fuchsia.metrics.MetricEventLoggerFactory" ],
            from: "parent",
        },
    ],
    offer: [
        {
            // Routed to session-manager via core realm shards.
            // These protocols are not available on all products.
            protocol: [
                "fuchsia.accessibility.gesture.ListenerRegistry",
                "fuchsia.accessibility.tts.EngineRegistry",
                "fuchsia.accessibility.virtualkeyboard.Registry",
                "fuchsia.bluetooth.gatt.Server",
                "fuchsia.bluetooth.le.Central",
                "fuchsia.bluetooth.le.Peripheral",
                "fuchsia.bluetooth.sys.Access",
                "fuchsia.camera3.DeviceWatcher",
                "fuchsia.castauth.CastKeySigner",
                "fuchsia.cobalt.SystemDataUpdater",
                "fuchsia.device.NameProvider",
                "fuchsia.diagnostics.LegacyMetricsArchiveAccessor",
                "fuchsia.feedback.ComponentDataRegister",
                "fuchsia.feedback.CrashReportingProductRegister",
                "fuchsia.feedback.DataProvider",
                "fuchsia.feedback.LastRebootInfoProvider",
                "fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
                "fuchsia.hwinfo.Board",
                "fuchsia.hwinfo.Device",
                "fuchsia.hwinfo.Product",
                "fuchsia.input.virtualkeyboard.ControllerCreator",
                "fuchsia.input.virtualkeyboard.Manager",
                "fuchsia.location.namedplace.RegulatoryRegionConfigurator",
                "fuchsia.location.namedplace.RegulatoryRegionWatcher",
                "fuchsia.lowpan.bootstrap.Thread",
                "fuchsia.media.drm.PlayReady",
                "fuchsia.media.drm.Widevine",
                "fuchsia.media.SessionAudioConsumerFactory",
                "fuchsia.media.sessions2.ActiveSession",
                "fuchsia.media.sessions2.Discovery",
                "fuchsia.media.sessions2.Publisher",
                "fuchsia.media.sounds.Player",
                "fuchsia.net.http.Loader",
                "fuchsia.net.interfaces.State",
                "fuchsia.net.mdns.Publisher",
                "fuchsia.net.mdns.Subscriber",
                "fuchsia.net.routes.State",
                "fuchsia.netstack.Netstack",
                "fuchsia.paver.Paver",
                "fuchsia.power.battery.BatteryManager",
                "fuchsia.power.button.Monitor",
                "fuchsia.power.profile.Watcher",
                "fuchsia.power.systemmode.ClientConfigurator",
                "fuchsia.recovery.FactoryReset",
                "fuchsia.recovery.ui.FactoryResetCountdown",
                "fuchsia.settings.Accessibility",
                "fuchsia.settings.Audio",
                "fuchsia.settings.Display",
                "fuchsia.settings.DoNotDisturb",
                "fuchsia.settings.FactoryReset",
                "fuchsia.settings.Input",
                "fuchsia.settings.Intl",
                "fuchsia.settings.Keyboard",
                "fuchsia.settings.Light",
                "fuchsia.settings.NightMode",
                "fuchsia.settings.policy.VolumePolicyController",
                "fuchsia.settings.Privacy",
                "fuchsia.settings.Setup",
                "fuchsia.ssh.AuthorizedKeys",
                "fuchsia.sys.Environment",
                "fuchsia.sys.Loader",
                "fuchsia.timezone.Timezone",
                "fuchsia.ui.activity.control.Control",
                "fuchsia.ui.activity.Provider",
                "fuchsia.ui.activity.Tracker",
                "fuchsia.ui.brightness.ColorAdjustmentHandler",
                "fuchsia.ui.brightness.Control",
                "fuchsia.ui.input.PointerCaptureListenerRegistry",
                "fuchsia.ui.policy.DeviceListenerRegistry",
                "fuchsia.ui.policy.DisplayBacklight",
                "fuchsia.ui.shortcut.Registry",
                "fuchsia.ultrasound.Factory",
                "fuchsia.update.config.OptOut",
                "fuchsia.update.config.OptOutAdmin",
                "fuchsia.weave.FactoryDataManager",
                "fuchsia.weave.Provisioner",
                "fuchsia.weave.Signer",
                "fuchsia.web.ContextProvider",
                "google.device.key.encryptor.DeviceKeyEncryptor",
                "google.deviceproperty.Reader",
                "google.deviceproperty.Writer",
                "google.flashts.Reader",
            ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via factory_store_providers.core_shard.cml.
            protocol: [
                "fuchsia.factory.AlphaFactoryStoreProvider",
                "fuchsia.factory.CastCredentialsFactoryStoreProvider",
                "fuchsia.factory.MiscFactoryStoreProvider",
                "fuchsia.factory.PlayReadyFactoryStoreProvider",
                "fuchsia.factory.WeaveFactoryStoreProvider",
                "fuchsia.factory.WidevineFactoryStoreProvider",
            ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via build_info.core_shard.cml.
            protocol: [ "fuchsia.buildinfo.Provider" ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via codec_factory.core_shard.cml.
            protocol: [ "fuchsia.mediacodec.CodecFactory" ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via wlancfg.core_shard.cml.
            protocol: [
                "fuchsia.wlan.policy.AccessPointProvider",
                "fuchsia.wlan.policy.ClientProvider",
                "fuchsia.wlan.product.deprecatedclient.DeprecatedClient",
                "fuchsia.wlan.product.deprecatedconfiguration.DeprecatedConfigurator",
            ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via memory_monitor.core_shard.cml.
            protocol: [
                "fuchsia.memory.Monitor",
                "fuchsia.memorypressure.Provider",
            ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via omaha_client_service.core_shard.cml or
            // system_update_checker.core_shard.cml.
            protocol: [
                "fuchsia.update.channel.Provider",
                "fuchsia.update.channelcontrol.ChannelControl",
                "fuchsia.update.Manager",
            ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via emergency.core_shard.cml
            protocol: [ "fuchsia.location.position.EmergencyProvider" ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via bt-a2dp-common.core_shard.cml
            protocol: [ "fuchsia.bluetooth.a2dp.AudioMode" ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via bt-hfp-audio-gateway.core_shard.cml
            protocol: [ "fuchsia.bluetooth.hfp.Hfp" ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via bt-bootstrap.core_shard.cml
            protocol: [ "fuchsia.bluetooth.sys.Bootstrap" ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via weavestack.core_shard.cml
            protocol: [
                "fuchsia.weave.Bootstrap",
                "fuchsia.weave.Stack",
                "fuchsia.weave.StackProvider",
            ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via lowpanservice.core_shard.cml
            protocol: [
                "fuchsia.lowpan.device.CountersConnector",
                "fuchsia.lowpan.device.DeviceConnector",
                "fuchsia.lowpan.device.DeviceExtraConnector",
                "fuchsia.lowpan.device.EnergyScanConnector",
                "fuchsia.lowpan.DeviceWatcher",
                "fuchsia.lowpan.thread.DatasetConnector",
                "fuchsia.lowpan.thread.MeshcopConnector",
            ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via account.core_shard.cml
            protocol: [ "fuchsia.identity.account.AccountManager" ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via ui.core_shard.cml
            protocol: [
                "fuchsia.accessibility.semantics.SemanticsManager",
                "fuchsia.session.scene.Manager",
            ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager via audio_core
            protocol: [
                "fuchsia.media.ActivityReporter",
                "fuchsia.media.Audio",
                "fuchsia.media.audio.EffectsController",
                "fuchsia.media.AudioCore",
                "fuchsia.media.AudioDeviceEnumerator",
                "fuchsia.media.ProfileProvider",
                "fuchsia.media.UsageGainReporter",
                "fuchsia.media.UsageReporter",
            ],
            from: "parent",
            to: "#session",
        },
        {
            // Routed to session-manager from core.cml in all products.
            // i.e. not via a core realm shard.
            protocol: [
                // TODO(fxbug.dev/96053): remove once basemgr has migrated to
                // Cobalt 1.1.
                "fuchsia.cobalt.LoggerFactory",
                "fuchsia.feedback.CrashReporter",
                "fuchsia.fonts.Provider",
                "fuchsia.hardware.power.statecontrol.Admin",
                "fuchsia.intl.PropertyProvider",
                "fuchsia.intl.TimeZones",
                "fuchsia.logger.LogSink",
                "fuchsia.metrics.MetricEventLoggerFactory",
                "fuchsia.net.name.Lookup",
                "fuchsia.posix.socket.Provider",
                "fuchsia.process.Launcher",
                "fuchsia.sys.Launcher",
                "fuchsia.sysmem.Allocator",
                "fuchsia.tracing.provider.Registry",
                "fuchsia.ui.composition.Allocator",
                "fuchsia.ui.composition.Flatland",
                "fuchsia.ui.composition.FlatlandDisplay",
                "fuchsia.ui.composition.ScreenCapture",
                "fuchsia.ui.display.internal.DisplayPower",
                "fuchsia.ui.focus.FocusChainListenerRegistry",
                "fuchsia.ui.input.ImeService",
                "fuchsia.ui.input3.Keyboard",
                "fuchsia.ui.input3.KeyEventInjector",
                "fuchsia.ui.keyboard.focus.Controller",
                "fuchsia.ui.lifecycle.LifecycleController",
                "fuchsia.ui.pointerinjector.Registry",
                "fuchsia.ui.policy.Presenter",
                "fuchsia.ui.scenic.Scenic",
                "fuchsia.ui.shortcut.Manager",
                "fuchsia.ui.views.ViewRefInstalled",
                "fuchsia.vulkan.loader.Loader",
            ],
            from: "parent",
            to: "#session",
        },
        {
            storage: "cache",
            from: "parent",
            to: "#session",
        },
        {
            storage: "data",
            from: "parent",
            to: "#session",
        },
        {
            storage: "tmp",
            from: "parent",
            to: "#session",
        },
        {
            directory: "config-data",
            from: "parent",
            to: "#session",
        },
        {
            directory: "dev-input-report",
            from: "parent",
            to: "#session",
        },
        {
            directory: "root-ssl-certificates",
            from: "parent",
            to: "#session",
        },

        // Allow components in the session to restart it (the session).
        {
            protocol: "fuchsia.session.Restarter",
            from: "self",
            to: "#session",
        },
    ],
    expose: [
        {
            protocol: [
                "fuchsia.element.GraphicalPresenter",
                "fuchsia.element.Manager",
                "fuchsia.input.injection.InputDeviceRegistry",
                "fuchsia.session.Launcher",
                "fuchsia.session.Restarter",
                "fuchsia.sessionmanager.Startup",
            ],
            from: "self",
        },
    ],
    config: {
        session_url: {
            type: "string",
            max_size: 512,
        },
    },
}
