<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Eryph.GuestServices.Core</name>
    </assembly>
    <members>
        <member name="F:Eryph.GuestServices.Core.Constants.ServiceId">
            <summary>
            The Hyper-V integration service ID for the eryph guest services.
            </summary>
            <remarks>
            <para>
            This ID must be registered on the VM host before the eryph guest services can be used.
            </para>
            <para>
            This ID corresponds to the port 5002 for Linux VSock sockets.
            </para>
            </remarks>
        </member>
        <member name="F:Eryph.GuestServices.Core.Constants.FeaturesKey">
            <summary>
            The KVP key (Guest pool) where the service advertises supported optional
            features as a space-separated list. Hosts/tools should check this before
            using a feature that may be missing on older services.
            </summary>
        </member>
        <member name="F:Eryph.GuestServices.Core.Constants.ShellOverrideFeature">
            <summary>
            Feature flag advertised by services that honor the shell override KVP
            keys (<see cref="F:Eryph.GuestServices.Core.Constants.ShellKey"/>, <see cref="F:Eryph.GuestServices.Core.Constants.ShellArgsKey"/>).
            </summary>
        </member>
        <member name="F:Eryph.GuestServices.Core.Constants.ShellKey">
            <summary>
            The KVP key (External pool) that overrides the shell command spawned
            for an interactive SSH session. When unset, the service falls back to
            the SSH-sent <c>SHELL</c> environment variable, then to the platform
            default (<c>powershell.exe</c> on Windows, <c>$SHELL</c> or
            <c>/bin/bash</c> on Linux).
            </summary>
        </member>
        <member name="F:Eryph.GuestServices.Core.Constants.ShellArgsKey">
            <summary>
            The KVP key (External pool) that overrides the arguments passed to the
            shell command. Only consulted when <see cref="F:Eryph.GuestServices.Core.Constants.ShellKey"/> is also set.
            </summary>
        </member>
        <member name="F:Eryph.GuestServices.Core.Constants.ShellEnvName">
            <summary>
            The SSH-sent environment variable name that overrides the shell command
            for one session. Lower priority than <see cref="F:Eryph.GuestServices.Core.Constants.ShellKey"/>.
            </summary>
        </member>
        <member name="F:Eryph.GuestServices.Core.Constants.ShellArgsEnvName">
            <summary>
            The SSH-sent environment variable name that overrides the shell
            arguments for one session. Lower priority than <see cref="F:Eryph.GuestServices.Core.Constants.ShellArgsKey"/>.
            </summary>
        </member>
        <member name="T:Eryph.GuestServices.Core.IServiceControlFlags">
            <summary>
            Operator on/off switches for the two top-level guest-services capabilities.
            Both are <b>opt-out</b>: a capability is ON unless an operator has explicitly
            turned it off. This is an injectable seam so the gated services
            (provisioning agent, remote-access transport) can be unit-tested without
            touching the real registry.
            </summary>
        </member>
        <member name="M:Eryph.GuestServices.Core.IServiceControlFlags.IsProvisioningEnabled">
            <summary>
            Gates the cloud-init-style first-boot provisioning agent. <c>true</c>
            unless an operator turned it off.
            </summary>
        </member>
        <member name="M:Eryph.GuestServices.Core.IServiceControlFlags.IsRemoteAccessEnabled">
            <summary>
            Gates eryph's remote-access transport (the Hyper-V-vsock SSH server that
            <c>egs-tool</c> connects to for shell / exec / file-transfer / pty).
            <c>true</c> unless an operator turned it off.
            </summary>
        </member>
        <member name="T:Eryph.GuestServices.Core.RegistryServiceControlFlags">
            <summary>
            Default <see cref="T:Eryph.GuestServices.Core.IServiceControlFlags"/> implementation. Reads the opt-out
            flags from <c>HKLM\SOFTWARE\eryph\guest-services</c> on Windows; on every
            other platform both capabilities are always ON (the registry is
            Windows-only).
            </summary>
            <remarks>
            These are <b>fail-open</b> flags: a missing key/value or any registry /
            permission error yields <c>true</c>. We never disable a capability because of
            a read error — only an explicit <c>REG_DWORD</c> value of <c>0</c> turns a
            capability off. The value→bool interpretation lives in the pure
            <see cref="M:Eryph.GuestServices.Core.RegistryServiceControlFlags.InterpretFlag(System.Object)"/> helper so it can be unit-tested without writing
            to HKLM (which needs admin and pollutes the machine). The Windows-only
            registry access is split behind a <c>[SupportedOSPlatform("windows")]</c>
            core plus an <see cref="M:System.OperatingSystem.IsWindows"/> gate, mirroring
            <c>PlatformProbes</c> / <c>AzureDataSource</c> so CA1416 stays clean.
            </remarks>
        </member>
        <member name="M:Eryph.GuestServices.Core.RegistryServiceControlFlags.InterpretFlag(System.Object)">
            <summary>
            Pure value→bool interpretation for an opt-out DWORD flag. A
            <c>REG_DWORD</c> reads back as <see cref="T:System.Int32"/>: <c>0</c> means OFF,
            any non-zero value means ON. A missing value (<c>null</c>) or any other
            value kind means ON. Kept pure (no registry I/O) so the opt-out
            semantics are unit-testable without admin or machine state.
            </summary>
        </member>
    </members>
</doc>
