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

##
# ********************
# Compatibility policy
# ********************
##

##
# @CompatPolicyInput:
#
# Policy for handling "funny" input.
#
# @accept: Accept silently
#
# @reject: Reject with an error
#
# @crash: abort() the process
#
# Since: 6.0
##
{ 'enum': 'CompatPolicyInput',
  'data': [ 'accept', 'reject', 'crash' ] }

##
# @CompatPolicyOutput:
#
# Policy for handling "funny" output.
#
# @accept: Pass on unchanged
#
# @hide: Filter out
#
# Since: 6.0
##
{ 'enum': 'CompatPolicyOutput',
  'data': [ 'accept', 'hide' ] }

##
# @CompatPolicy:
#
# Policy for handling deprecated management interfaces.
#
# This is intended for testing users of the management interfaces.
#
# Limitation: covers only syntactic aspects of QMP, i.e. stuff tagged
# with feature 'deprecated' or 'unstable'.  We may want to extend it
# to cover semantic aspects and CLI.
#
# Limitation: deprecated-output policy @hide is not implemented for
# enumeration values.  They behave the same as with policy @accept.
#
# @deprecated-input: how to handle deprecated input (default 'accept')
#
# @deprecated-output: how to handle deprecated output (default
#     'accept')
#
# @unstable-input: how to handle unstable input (default 'accept')
#     (since 6.2)
#
# @unstable-output: how to handle unstable output (default 'accept')
#     (since 6.2)
#
# Since: 6.0
##
{ 'struct': 'CompatPolicy',
  'data': { '*deprecated-input': 'CompatPolicyInput',
            '*deprecated-output': 'CompatPolicyOutput',
            '*unstable-input': 'CompatPolicyInput',
            '*unstable-output': 'CompatPolicyOutput' } }
