# -*- Mode: Python -*-
# vim: filetype=python

{ 'pragma': { 'doc-required': true } }

# Entries in these lists are allowed to violate the QAPI rules (for
# historical reasons); think twice before you add to them!
{ 'pragma': {
    # Command names containing '_'
    'command-name-exceptions': [
        'add_client',
        'block_resize',
        'block_set_io_throttle',
        'client_migrate_info',
        'device_add',
        'device_del',
        'expire_password',
        'migrate_cancel',
        'netdev_add',
        'netdev_del',
        'qmp_capabilities',
        'set_link',
        'set_password',
        'system_powerdown',
        'system_reset',
        'system_wakeup' ],
    # Commands allowed to return a non-dictionary
    'command-returns-exceptions': [
        'human-monitor-command',
        'qom-get',
        'query-tpm-models',
        'query-tpm-types',
        'ringbuf-read' ],
    # Types, commands, and events with undocumented members / arguments:
    'documentation-exceptions': [
        'AbortWrapper',
        'AudiodevDriver',
        'BlkdebugEvent',
        'BlockDirtyBitmapAddWrapper',
        'BlockDirtyBitmapMergeWrapper',
        'BlockDirtyBitmapWrapper',
        'BlockdevBackupWrapper',
        'BlockdevDriver',
        'BlockdevQcow2EncryptionFormat',
        'BlockdevSnapshotInternalWrapper',
        'BlockdevSnapshotSyncWrapper',
        'BlockdevSnapshotWrapper',
        'BlockdevVmdkAdapterType',
        'CxlCorErrorType',
        'DisplayProtocol',
        'DriveBackupWrapper',
        'DummyBlockCoreForceArrays',
        'DummyForceArrays',
        'DummyVirtioForceArrays',
        'HotKeyMod',
        'ImageInfoSpecificKind',
        'InputAxis',
        'InputButton',
        'IscsiHeaderDigest',
        'IscsiTransport',
        'JSONType',
        'KeyValueKind',
        'MemoryDeviceInfoKind',
        'NetClientDriver',
        'ObjectType',
        'PciMemoryRegion',
        'QCryptoAkCipherKeyType',
        'QCryptodevBackendServiceType',
        'QKeyCode',
        'RbdAuthMode',
        'RbdImageEncryptionFormat',
        'S390CpuEntitlement',
        'S390CpuPolarization',
        'S390CpuState',
        'String',
        'StringWrapper',
        'SysEmuTarget',
        'ThrottleGroupProperties',
        'VncPrimaryAuth',
        'VncVencryptSubAuth',
        'X86CPURegister32',
        'XDbgBlockGraph',
        'YankInstanceType',
        'blockdev-reopen',
        'query-rocker',
        'query-rocker-ports' ],
    # Externally visible types whose member names may use uppercase
    'member-name-exceptions': [     # visible in:
        'ACPISlotType',             # query-acpi-ospm-status
        'AcpiTableOptions',         # -acpitable
        'BlkdebugEvent',            # blockdev-add, -blockdev
        'BlkdebugSetStateOptions',  # blockdev-add, -blockdev
        'BlockDeviceInfo',          # query-block
        'BlockDeviceStats',         # query-blockstats
        'BlockDeviceTimedStats',    # query-blockstats
        'BlockIOThrottle',          # block_set_io_throttle
        'BlockInfo',                # query-block
        'BlockdevAioOptions',       # blockdev-add, -blockdev
        'BlockdevDriver',           # blockdev-add, query-blockstats, ...
        'BlockdevVmdkAdapterType',  # blockdev-create (to match VMDK spec)
        'BlockdevVmdkSubformat',    # blockdev-create (to match VMDK spec)
        'ColoCompareProperties',    # object_add, -object
        'FilterMirrorProperties',   # object_add, -object
        'FilterRedirectorProperties', # object_add, -object
        'FilterRewriterProperties', # object_add, -object
        'InputLinuxProperties',     # object_add, -object
        'NetdevTapOptions',         # netdev_add, query-netdev, -netdev
        'ObjectType',               # object-add, -object
        'PCIELinkSpeed',            # internal only
        'PciBusInfo',               # query-pci
        'PciDeviceInfo',            # query-pci
        'PciMemoryRegion',          # query-pci
        'QKeyCode',                 # send-key, input-sent-event
        'QapiErrorClass',           # QMP error replies
        'SshHostKeyCheckMode',      # blockdev-add, -blockdev
        'SysEmuTarget',             # query-cpu-fast, query-target
        'UuidInfo',                 # query-uuid
        'VncClientInfo',            # query-vnc, query-vnc-servers, ...
        'X86CPURegister32'          # qom-get of x86 CPU properties
                                    # feature-words, filtered-features
    ] } }
