# BMCWEB_KVM
option(
    'kvm',
    type: 'feature',
    value: 'enabled',
    description: '''Enable the KVM host video WebSocket.  Path is /kvm/0.
                    Video is from the BMCs /dev/videodevice.''',
)

# BMCWEB_TESTS
option(
    'tests',
    type: 'feature',
    value: 'enabled',
    description: 'Enable Unit tests for bmcweb',
)

# BMCWEB_VM_WEBSOCKET
option(
    'vm-websocket',
    type: 'feature',
    value: 'enabled',
    description: '''Enable the Virtual Media WebSocket. Path is /vm/0/0 and /nbd/<id> to
                    open the websocket. See
                    https://github.com/openbmc/jsnbd/blob/master/README.''',
)

option(
    'redfish-use-3-digit-messageid',
    type: 'feature',
    value: 'disabled',
    description: '''Prior to a bug fix, bmcweb exposed error messages with a
                    MessageId of Base.x.y.z.Message which was incorrect.
                    Enabling this option causes return codes to return the old
                    incorrect version for backward compatibility.  Will be
                    removed Q2-2025'''
)

# BMCWEB_NBDPROXY
# if you use this option and are seeing this comment, please comment here:
# https://github.com/openbmc/bmcweb/issues/188 and put forward your intentions
# for this code.  At this point, no daemon has been upstreamed that implements
# this interface, so for the moment this appears to be dead code;  In leiu of
# removing it, it has been disabled to try to give those that use it the
# opportunity to upstream their backend implementation
#option(
#    'vm-nbdproxy',
#    type: 'feature',
#    value: 'disabled',
#    description: 'Enable the Virtual Media WebSocket.'
#)

# BMCWEB_REST
option(
    'rest',
    type: 'feature',
    value: 'disabled',
    description: '''Enable Phosphor REST (D-Bus) APIs. Paths directly map
                    Phosphor D-Bus object paths, for example,
                    /xyz/openbmc_project/logging/entry/enumerate. See
                    https://github.com/openbmc/docs/blob/master/rest-api.md.''',
)

# BMCWEB_REDFISH
option(
    'redfish',
    type: 'feature',
    value: 'enabled',
    description: '''Enable Redfish APIs.  Paths are under /redfish/v1/. See
                    https://github.com/openbmc/bmcweb/blob/master/DEVELOPING.md#redfish.''',
)

# BMCWEB_HOST_SERIAL_SOCKET
option(
    'host-serial-socket',
    type: 'feature',
    value: 'enabled',
    description: '''Enable host serial console WebSocket. Path is /console0.
                    See https://github.com/openbmc/docs/blob/master/console.md.''',
)

# BMCWEB_STATIC_HOSTING
option(
    'static-hosting',
    type: 'feature',
    value: 'enabled',
    description: '''Enable serving files from the /usr/share/www directory
                    as paths under /.''',
)

# BMCWEB_REDFISH_BMC_JOURNAL
option(
    'redfish-bmc-journal',
    type: 'feature',
    value: 'enabled',
    description: '''Enable BMC journal access through Redfish. Paths are under
                    /redfish/v1/Managers/bmc/LogServices/Journal.''',
)

# BMCWEB_REDFISH_CPU_LOG
option(
    'redfish-cpu-log',
    type: 'feature',
    value: 'disabled',
    description: '''Enable CPU log service transactions through Redfish. Paths
                    are under /redfish/v1/Systems/system/LogServices/Crashdump'.''',
)

# BMCWEB_REDFISH_DUMP_LOG
option(
    'redfish-dump-log',
    type: 'feature',
    value: 'disabled',
    description: '''Enable Dump log service transactions through Redfish. Paths
                   are under /redfish/v1/Systems/system/LogServices/Dump
                   and /redfish/v1/Managers/bmc/LogServices/Dump''',
)

# BMCWEB_REDFISH_DBUS_LOG
option(
    'redfish-dbus-log',
    type: 'feature',
    value: 'disabled',
    description: '''Enable DBUS log service transactions through Redfish. Paths
                    are under
                    /redfish/v1/Systems/system/LogServices/EventLog/Entries''',
)

# BMCWEB_EXPERIMENTAL_REDFISH_DBUS_LOG_SUBSCRIPTION
option(
    'experimental-redfish-dbus-log-subscription',
    type: 'feature',
    value: 'disabled',
    description: '''
        Allows EventService subscriptions when the redfish-dbus-log option is
        enabled.
        This option is currently non-functional, given Redfish requirements for
        MessageId support in Events.
        Option will be removed begining of Q2-2025.
        Should not be enabled on any production systems.
    ''',
)

# BMCWEB_REDFISH_HOST_LOGGER
option(
    'redfish-host-logger',
    type: 'feature',
    value: 'enabled',
    description: '''Enable host log service transactions based on
                    phosphor-hostlogger through Redfish.  Paths are under
                    /redfish/v1/Systems/system/LogServices/HostLogger''',
)

# BMCWEB_REDFISH_PROVISIONING_FEATURE
option(
    'redfish-provisioning-feature',
    type: 'feature',
    value: 'disabled',
    description: '''Enable provisioning feature support in redfish. Paths are
                    under /redfish/v1/Systems/system/''',
)

# BMCWEB_REDFISH_MANAGER_URI_NAME
option(
    'redfish-manager-uri-name',
    type: 'string',
    value: 'bmc',
    description: '''The static Redfish Manager ID representing the BMC
                    instance. This option will appear in the Redfish tree at
                    /redfish/v1/Managers/<redfish-manager-uri-name>.
                    Defaults to \'bmc\' which resolves to
                    /redfish/v1/Managers/bmc''',
)

# BMCWEB_REDFISH_SYSTEM_URI_NAME
option(
    'redfish-system-uri-name',
    type: 'string',
    value: 'system',
    description: '''The static Redfish System ID representing the host
                    instance. This option will appear in the Redfish tree at
                    /redfish/v1/Systems/<redfish-system-uri-name>.
                    Defaults to \'system\' which resolves to
                    /redfish/v1/Systems/system''',
)

# BMCWEB_LOGGING_LEVEL
option(
    'bmcweb-logging',
    type: 'combo',
    choices: [
        'disabled',
        'enabled',
        'debug',
        'info',
        'warning',
        'error',
        'critical',
    ],
    value: 'error',
    description: '''Enable output the extended logging level.
                    - disabled: disable bmcweb log traces.
                    - enabled: treated as 'debug'
                    - For the other logging level option, see DEVELOPING.md.''',
)

# BMCWEB_BASIC_AUTH
option(
    'basic-auth',
    type: 'feature',
    value: 'enabled',
    description: 'Enable basic authentication',
)

# BMCWEB_SESSION_AUTH
option(
    'session-auth',
    type: 'feature',
    value: 'enabled',
    description: 'Enable session authentication',
)

# BMCWEB_XTOKEN_AUTH
option(
    'xtoken-auth',
    type: 'feature',
    value: 'enabled',
    description: 'Enable xtoken authentication',
)

# BMCWEB_COOKIE_AUTH
option(
    'cookie-auth',
    type: 'feature',
    value: 'enabled',
    description: 'Enable cookie authentication',
)

# BMCWEB_MUTUAL_TLS_AUTH
option(
    'mutual-tls-auth',
    type: 'feature',
    value: 'enabled',
    description: '''Enables authenticating users through TLS client
                    certificates. The insecure-disable-ssl must be disabled for
                    this option to take effect.''',
)

# BMCWEB_MUTUAL_TLS_COMMON_NAME_PARSING_DEFAULT
option(
    'mutual-tls-common-name-parsing-default',
    type: 'combo',
    choices: ['CommonName', 'Whole', 'UserPrincipalName', 'Meta'],
    description: '''
        Parses the Subject CN in the format used by
                                Meta Inc (see mutual_tls_meta.cpp for details)
                    ''',
)

# BMCWEB_META_TLS_COMMON_NAME_PARSING
option(
    'meta-tls-common-name-parsing',
    type: 'feature',
    description: '''
        Allows parsing the Subject CN TLS certificate in the format used by
                                Meta Inc (see mutual_tls_meta.cpp for details)
    ''',
)

# BMCWEB_IBM_MANAGEMENT_CONSOLE
option(
    'ibm-management-console',
    type: 'feature',
    value: 'disabled',
    description: '''Enable the IBM management console specific functionality.
                    Paths are under /ibm/v1/''',
)

# BMCWEB_GOOGLE_API
option(
    'google-api',
    type: 'feature',
    value: 'disabled',
    description: '''Enable the Google specific functionality. Paths are under
                    /google/v1/''',
)

# BMCWEB_HTTP_BODY_LIMIT
option(
    'http-body-limit',
    type: 'integer',
    min: 0,
    max: 512,
    value: 30,
    description: 'Specifies the http request body length limit',
)

# BMCWEB_REDFISH_NEW_POWERSUBSYSTEM_THERMALSUBSYSTEM
option(
    'redfish-new-powersubsystem-thermalsubsystem',
    type: 'feature',
    value: 'enabled',
    description: '''Enable/disable the new PowerSubsystem, ThermalSubsystem,
                    and all children schemas. This includes displaying all
                    sensors in the SensorCollection.''',
)

# BMCWEB_REDFISH_ALLOW_DEPRECATED_POWER_THERMAL
option(
    'redfish-allow-deprecated-power-thermal',
    type: 'feature',
    value: 'enabled',
    description: '''Enable/disable the old Power / Thermal. The default
                    condition is allowing the old Power / Thermal. This
                    will be disabled by default June 2024. ''',
)

# BMCWEB_REDFISH_OEM_MANAGER_FAN_DATA
option(
    'redfish-oem-manager-fan-data',
    type: 'feature',
    value: 'enabled',
    description: '''Enables Redfish OEM fan data on the manager resource.
                    This includes PID and Stepwise controller data. See
                    OpenBMCManager schema for more detail.''',
)

# BMCWEB_REDFISH_UPDATESERVICE_USE_DBUS
option(
    'redfish-updateservice-use-dbus',
    type: 'feature',
    value: 'enabled',
    description: '''Enables xyz.openbmc_project.Software.Update D-Bus interface
                    to propagate UpdateService requests to the corresponding
                    updater daemons instead of moving files to /tmp/images dir.
                    This option is temporary, should not be enabled on any
                    production systems. The code will be moved to the normal
                    code update flow and the option will be removed at the end
                    of Q3 2024.
                ''',
)

# BMCWEB_REDFISH_ALLOW_SIMPLE_UPDATE
option(
    'redfish-allow-simple-update',
    type: 'feature',
    value: 'disabled',
    description: '''Enables Redfish UpdateService SimpleUpdate Action.  Note
                    that at this time this option is non-functional.  Redfish
                    recommends using MultiPartUpdate.''',
)


# BMCWEB_HTTPS_PORT
option(
    'https_port',
    type: 'integer',
    min: 1,
    max: 65535,
    value: 443,
    description: 'HTTPS Port number.',
)

# BMCWEB_DNS_RESOLVER
option(
    'dns-resolver',
    type: 'combo',
    choices: ['systemd-dbus', 'asio'],
    value: 'systemd-dbus',
    description: '''Sets which DNS resolver backend should be used.
    systemd-dbus uses the Systemd ResolveHostname on dbus, but requires dbus
    support.  asio relies on boost::asio::tcp::resolver, but cannot resolve
    names when boost threading is disabled.''',
)

# BMCWEB_REDFISH_AGGREGATION
option(
    'redfish-aggregation',
    type: 'feature',
    value: 'disabled',
    description: 'Allows this BMC to aggregate resources from satellite BMCs',
)

# BMCWEB_HYPERVISOR_COMPUTER_SYSTEM
option(
    'hypervisor-computer-system',
    type: 'feature',
    value: 'disabled',
    description: '''This puts a hypervisor computer system resource at
    /redfish/v1/Systems/hypervisor. This system resource has children
    resources such as EthernetInterfaces and ComputerSystem.Reset.''',
)

# BMCWEB_EXPERIMENTAL_REDFISH_MULTI_COMPUTER_SYSTEM
option(
    'experimental-redfish-multi-computer-system',
    type: 'feature',
    value: 'disabled',
    description: '''This is a temporary option flag for staging the
    ComputerSystemCollection transition to multi-host.  It, as well as the code
    still beneath it will be removed on 3/1/2025.  Do not enable in a
    production environment, or where API stability is required.''',
)

# BMCWEB_EXPERIMENTAL_HTTP2
option(
    'experimental-http2',
    type: 'feature',
    value: 'disabled',
    description: '''Enable HTTP/2 protocol support using nghttp2.  Do not rely
                    on this option for any production systems.  It may have
                    behavior changes or be removed at any time.''',
)

# Insecure options. Every option that starts with a `insecure` flag should
# not be enabled by default for any platform, unless the author fully comprehends
# the implications of doing so.In general, enabling these options will cause security
# problems of varying degrees

# BMCWEB_INSECURE_DISABLE_CSRF
option(
    'insecure-disable-csrf',
    type: 'feature',
    value: 'disabled',
    description: '''Disable CSRF prevention checks.Should be set to false for
                    production systems.''',
)

# BMCWEB_INSECURE_DISABLE_SSL
option(
    'insecure-disable-ssl',
    type: 'feature',
    value: 'disabled',
    description: '''Disable SSL ports. Should be set to false for production
                    systems.''',
)

# BMCWEB_INSECURE_DISABLE_AUTH
option(
    'insecure-disable-auth',
    type: 'feature',
    value: 'disabled',
    description: '''Disable authentication and authoriztion on all ports.
                    Should be set to false for production systems.''',
)

# BMCWEB_INSECURE_IGNORE_CONTENT_TYPE
option(
    'insecure-ignore-content-type',
    type: 'feature',
    value: 'disabled',
    description: '''Allows parsing PUT/POST/PATCH content as JSON regardless
                    of the presence of the content-type header.  Enabling this
                    conflicts with the input parsing guidelines, but may be
                    required to support old clients that may not set the
                    Content-Type header on payloads.''',
)

# BMCWEB_INSECURE_PUSH_STYLE_NOTIFICATION
option(
    'insecure-push-style-notification',
    type: 'feature',
    value: 'disabled',
    description: 'Enable HTTP push style eventing feature',
)

# BMCWEB_INSECURE_ENABLE_REDFISH_QUERY
option(
    'insecure-enable-redfish-query',
    type: 'feature',
    value: 'disabled',
    description: '''Enables Redfish expand query parameter.  This feature is
                    experimental, and has not been tested against the full
                    limits of user-facing behavior.  It is not recommended to
                    enable on production systems at this time.  Other query
                    parameters such as only are not controlled by this option.''',
)
