mongo/buildscripts/idl/idl_schema.yml
Catalin Sumanaru 18025e809a SERVER-122105 IDL compiler generic annotations block (#52568)
GitOrigin-RevId: 44194d7de6043776c2f1940520f3b296b9f98931
2026-04-28 18:38:45 +00:00

1049 lines
41 KiB
YAML

title: IDL Schema
"$schema": https://json-schema.org/draft/2020-12/schema
description: Schema for IDL files in the mongo codebase.
"$defs":
expression:
type: object
additionalProperties: false
properties:
expr:
description: String or boolean of the C++ expression.
oneOf:
- type: string
- type: boolean
is_constexpr:
type: boolean
description: Boolean for if the expression is constexpr.
required:
- expr
variant:
type: object
additionalProperties: false
properties:
variant:
type: array
description: >
Variant that chooses among a set of IDL types. You can have a variant of strings and
structs.
items:
type: string
minProperties: 1
check_or_privilege:
description: List of privileges the command checks
oneOf:
- type: object
description: >
Checks a part of the access control system like is_authenticated. See
src/mongo/db/auth/access_checks.idl for a complete list.
additionalProperties: false
properties:
check:
type: string
required:
- check
- type: object
description: Privilege that the command checks.
additionalProperties: false
properties:
privilege:
type: object
additionalProperties: false
properties:
resource_pattern:
type: string
description: >
A resource pattern to check for a given set of privileges. See MatchType enum in
src/mongo/db/auth/action_type.idl for complete list.
action_type:
oneOf:
- type: array
description: >
List of action types the command may check. See ActionType enum in
src/mongo/db/auth/action_type.idl for complete list.
items:
type: string
minItems: 1
uniqueItems: true
- type: string
description: >
Action type the command may check. See ActionType enum in
src/mongo/db/auth/action_type.idl for complete list.
agg_stage:
type: string
description: >
Name of aggregation stage. Used to appease the idl compatibility checker.
required:
- privilege
number_or_expression:
oneOf:
- type: number
- "$ref": "#/$defs/expression"
validator:
type: object
description: >
Validators generate functions that ensure a value during parse or set in a setter are valid.
Comparisons are generated with C++ operators for these comparisons.
additionalProperties: false
properties:
gt:
description: Validates field is greater than string.
"$ref": "#/$defs/number_or_expression"
lt:
description: Validates field is less than string.
"$ref": "#/$defs/number_or_expression"
gte:
description: Validates field is greater than or equal to string.
"$ref": "#/$defs/number_or_expression"
lte:
description: Validates field is less than or equal to string.
"$ref": "#/$defs/number_or_expression"
callback:
type: string
description: >
A static function to call of the shape Status <function_name>(const <cpp_type> value).
For non-simple types, value is passed by const-reference.
minProperties: 1
mod_visibility:
description: Out-of-module visibility of the struct, enum, or namespace.
oneOf:
- type: string
enum:
- pub # deprecated alias for public
- public
- public_for_technical_reasons
- private
- file_private
- needs_replacement
- unfortunately_open
- type: string
pattern: "^use_replacement(.+)$"
fields:
description: Fields of an IDL struct or command.
type: object
patternProperties:
"^.*$":
oneOf:
- type: string
description: Field of an IDL struct or command.
- type: object
description: Field of an IDL struct or command.
additionalProperties: false
properties:
cpp_name:
type: string
description: >
Optional name to use for member variable and getters/setters. Defaults to
camelCase of field name.
type:
description: Supports a single type, array<type>, or variant.
oneOf:
- type: string
description: >
String name of a type must be a enum, type, or struct that is defined in an IDL
file or imported. String can also be array<type> where type must be a enum, type,
struct, or variant. The C++ type will be std::vector<type> in this case.
- "$ref": "#/$defs/variant"
description:
type: string
description: A comment to add to the generated C++
ignore:
type: boolean
description: >
True means field generates no code but is ignored by the generated deserializer.
Used to deprecate fields that no longer have an affect but allow strict parsers to
ignore them.
optional:
type: boolean
description: >
True means the field is optional. Generated C++ type is boost::optional<type>.
default:
type:
- string
- number
- boolean
description: >
The default value of type. Types with default values are not required to be found
in the original document or set before serialization.
supports_doc_sequence:
type: boolean
description: >
True indicates the field can be found in a OpMsg's document sequence. Must use the
generated <struct>::parse(OpMsgRequest) parser to use this.
comparison_order:
type: integer
description: Comparison order for fields.
validator:
"$ref": "#/$defs/validator"
non_const_getter:
type: boolean
description: True indicates it generates a mutable getter.
unstable:
type: boolean
description: Deprecated, prefer stability = unstable instead.
stability:
type: string
description: >
Choice of [unstable, stable] - if unstable, parsing the field throws a field if
strict api checking is enabled.
enum:
- unstable
- stable
- internal
always_serialize:
type: boolean
description: Whether to always serialize optional fields even if none.
forward_to_shards:
type: boolean
description: >
Used by generic arg code to generate shouldForwardToShards, no affect on BSON
deserialization/serialization.
forward_from_shards:
type: boolean
description: >
Used by generic arg code to generate shouldForwardFromShards, no affect on BSON
deserialization/serialization.
query_shape:
type: string
description: >
Choice of [anonymize, literal, parameter, custom] - see
`src/mongo/db/query/query_shape.h`.
minProperties: 1
struct_base:
type: object
type: object
additionalProperties: false
properties:
structs:
description: List of BSON documents to deserialize/serialize to C++ classes.
type: object
patternProperties:
"^.*$":
type: object
description: Definition of a struct.
additionalProperties: false
properties:
description:
type: string
description: A comment to add to the generated C++.
chained_structs:
type: object
description: >
A list of structs to include this struct. IDL adds the chained structs as member
variables in the generated C++ class. IDL also adds a getter for each chained struct.
patternProperties:
"^.*$":
oneOf:
- type: string
description: The cpp_name to use for the chained struct.
- type: object
description: ""
additionalProperties: false
properties:
cpp_name:
type: string
description: The cpp_name to use for the chained struct.
fields:
"$ref": "#/$defs/fields"
cpp_name:
type: string
description: C++ name of the command or struct
strict:
type: boolean
description: >
Defaults to true, a strict parser errors if a unknown field is encountered by the
generated parser. Persisted structs should set this to false to allow them to
encounter documents from future versions of MongoDB without throwing an error.
generate_comparison_operators:
type: boolean
description:
"If true, generates support for C++ operatiors: ==, !=, <, >,
<=, >=."
inline_chained_structs:
type: boolean
description:
If true, exposes chained struct getters as members of this struct
in generated code.
immutable:
type: boolean
description: If true, does not generate mutable getters for structs.
non_const_getter:
type: boolean
description: If true, generates mutable getters for non-struct fields.
cpp_validator_func:
type: string
description: >
Name of a C++ function to call after a BSON document has been deserialized. Function
has signature of void <function_name>(<struct_name>* obj). Method is expected to
thrown a C++ exception (i.e. uassert) if validation fails.
is_catalog_ctxt:
type: boolean
description: >
If we set the struct or command to use a catalog context through the
`is_catalog_ctxt` IDL flag, serialze for catalog instead.
is_command_reply:
type: boolean
description: >
If true, marks the struct as a command reply. A struct marked a is_command_reply
generates a parser that ignores known generic or common fields across all replies
when parsing replies (i.e. ok, errmsg, etc).
is_generic_cmd_list:
type: string
description: >
Either "arg" or "reply". If set, generates functions bool hasField(StringData) and
bool shouldForwardToShards(StringData) for each field in the struct. If set to arg,
the struct will automatically be chained to every command.
enum:
- arg
- reply
query_shape_component:
type: boolean
description: >
True indicates this special serialization code will be generated to serialize as a
query shape.
unsafe_dangerous_disable_extra_field_duplicate_checks:
type: boolean
description: Undocumented, DO NOT USE!
mod_visibility:
"$ref": "#/$defs/mod_visibility"
types:
description: List of types which instruct IDL how deserialize/serialize primitives
type: object
patternProperties:
"^.*$":
type: object
additionalProperties: false
properties:
description:
type: string
description: A comment to add to the generated C++
bson_serialization_type:
description: >
A list of types BSON generated code should check a type is before calling the
deserializer.
oneOf:
- type: string
- type: array
items:
type: string
minItems: 1
uniqueItems: true
bindata_subtype:
type: string
description: >
If bson_serialization_type is bindata, this is the required bindata subtype.
enum:
- generic
- function
- uuid
- md5
- encrypt
- sensitive
- vector
cpp_type:
type: string
description: The C++ type to store the deserialized value as.
deserialize_with_tenant:
type: boolean
description: If set, adds TenantId as the first parameter to deserializer.
deserializer:
type: string
description: A method to deserialize the type.
serializer:
type: string
description: A method to serialize the type.
internal_only:
type: boolean
description: Undocumented, DO NOT USE!
default:
type: string
description: >
Default value for a type. A field in a struct inherits this value if a field does
not set a default.
is_view:
type: boolean
description: >
Indicates whether the type is a view or not. See idl/README.md for more info.
required:
- description
- cpp_type
- bson_serialization_type
enums:
description: YAML map that allows integer and string enumeration.
type: object
patternProperties:
"^.*$":
type: object
additionalProperties: false
properties:
description:
type: string
description: A comment to add to the generated C++.
type:
type: string
description: Enum type, can be either string or int.
enum:
- string
- int
mod_visibility:
"$ref": "#/$defs/mod_visibility"
values:
type: object
description: A map of `enum value name` -> `enum value`.
patternProperties:
"^.*$":
oneOf:
- type: string
- type: integer
- type: object
additionalProperties: false
properties:
description:
type: string
description: A comment to add to the generated C++.
value:
description: Int or string value associated with the named value.
oneOf:
- type: string
- type: integer
extra_data:
description:
See idl/README.md for more information about this
field.
"$comment": Parses as an arbitrary value in IDL.
required:
- description
- value
minProperties: 1
commands:
description:
List of BSON commands used by MongoDB RPC to deserialize/serialize
to C++ classes.
type: object
patternProperties:
"^.*$":
type: object
additionalProperties: false
properties:
description:
type: string
description: A comment to add to the generated C++.
chained_structs:
type: object
description: >
A list of structs to include this struct. IDL adds the chained structs as member
variables in the generated C++ class. IDL also adds a getter for each chained struct.
patternProperties:
"^.*$":
oneOf:
- type: string
description: The cpp_name to use for the chained struct.
- type: object
description: ""
additionalProperties: false
properties:
cpp_name:
type: string
description: The cpp_name to use for the chained struct.
fields:
"$ref": "#/$defs/fields"
cpp_name:
type: string
description: C++ name of the command or struct
strict:
type: boolean
description: >
Defaults to true, a strict parser errors if a unknown field is encountered by the
generated parser. Persisted structs should set this to false to allow them to
encounter documents from future versions of MongoDB without throwing an error.
generate_comparison_operators:
type: boolean
description:
"If true, generates support for C++ operatiors: ==, !=, <, >,
<=, >=."
inline_chained_structs:
type: boolean
description: >
If true, exposes chained struct getters as members of this struct in generated code.
immutable:
type: boolean
description: If true, does not generate mutable getters for structs.
non_const_getter:
type: boolean
description: If true, generates mutable getters for non-struct fields.
namespace:
type: string
description: >
Instructs how the value of command field should be parsed.
Possible string values:
- `concatenate_with_db` - Indicates the command field is a string and
should be treated as a collection name. Typically used by
commands that deal with collections. Automatically concatenated
with `$db` by the IDL parser. Adds a method `const NamespaceString
getNamespace()` to the generated class.
- `concatenate_with_db_or_uuid` - Indicates the command field is a
string or uuid, and should be treated as a collection name.
Typically used by commands that deal with collections.
Automatically concatenated with `$db` by the IDL parser. Adds a
method `const NamespaceStringOrUUID& getNamespaceOrUUID()` to the
generated class.
- `ignored` - Ignores the value of the command field. Used by
commands that ignore their command argument entirely.
- `type` - Indicates the command takes a custom type for the first
field. The `type` field must be set.
enum:
- concatenate_with_db
- concatenate_with_db_or_uuid
- ignored
- type
type:
description: Name of IDL type or struct to parse the command field as.
oneOf:
- type: string
description: >
String name of a type must be a enum, type, or struct that is defined in an IDL
file or imported. String can also be array<type> where type must be a enum, type,
struct, or variant. The C++ type will be std::vector<type> in this case.
- "$ref": "#/$defs/variant"
command_name:
type: string
description: >
IDL generated parser expects the command to be named the name of YAML map. This can
be overwritten with command_name. Commands should be camelCase.
command_alias:
type: string
description: >
Allows commands to have multiple names. DO NOT USE. Some older commands have both
lowercase and camelCase names.
reply_type:
type: string
description: >
IDL struct that this command replies with. Reply struct must have is_command_reply
set.
api_version:
description: >
Typically set to the empty string "". Only set to a non-empty string if command is
part of the stable API. Generates a class name<command_name>CommandNameCmdVersion1Gen
derived from TypedCommand that commands should be derived from.
oneOf:
- type: string
- type: number
- type: "null"
is_deprecated:
type: boolean
description: Indicates command is deprecated.
allow_global_collection_name:
type: boolean
description: >
If true, command can accept both collect names and non-collection names. Used by
the aggregate command.
access_check:
type: object
description: >
A list of privileges the command checks. Only applicable for commands that are
apart of API Version 1. Checked at runtime when test commands are enabled.
additionalProperties: false
properties:
none:
type: boolean
description: No privileges required.
simple:
"$ref": "#/$defs/check_or_privilege"
complex:
type: array
items:
"$ref": "#/$defs/check_or_privilege"
ignore:
type: boolean
minProperties: 1
maxProperties: 1
mod_visibility:
"$ref": "#/$defs/mod_visibility"
server_parameters:
description: >
List of server parameters to serialize into C++. The generated code will self-register
server parameters with the runtime.
type: object
patternProperties:
"^.*$":
type: object
description: ""
additionalProperties: false
properties:
set_at:
description: >
Must contain the value startup, runtime, [startup, runtime], or cluster. If runtime
is specified along with cpp_varname, then decltype(cpp_varname) must refer to a
thread-safe storage type, specifically: AtomicWord<T>, AtomicWord<double>, std::atomic<T>,
or boost::synchronized<T>. Parameters declared as cluster can only be set at
runtime and exhibit numerous differences.
oneOf:
- type: string
enum:
- startup
- runtime
- cluster
- readonly
- type: array
items:
type: string
enum:
- startup
- runtime
minItems: 1
uniqueItems: true
description:
type: string
description: >
Free-form text field currently used only for commenting the generated C++ code.
Future uses may preserve this value for a possible {listSetParameters:1} command
or other programmatic and potentially user-facing purposes.
cpp_vartype:
type: string
description: >
Declares the full storage type. If cpp_vartype is not defined, it may be inferred
from the C++ variable referenced by cpp_varname.
cpp_varname:
type: string
description: >
Declares the underlying variable or C++ struct member to use when setting or
reading the server parameter. If defined together with cpp_vartype, the storage
will be declared as a global variable, and externed in the generated header file.
If defined alone, a variable of this name will assume to have been declared and
defined by the implementer, and its type will be automatically inferred at compile
time. If cpp_varname is not defined, then cpp_class must be specified.
mod_visibility:
"$ref": "#/$defs/mod_visibility"
cpp_class:
description: >
Declares a custom ServerParameter class in the generated header using the provided
string, or the name field in the associated map. The declared class will require
an implementation of setFromString(), and optionally set(), append(), and a
constructor.
oneOf:
- type: string
- type: object
additionalProperties: false
properties:
name:
type: string
description: Name to assign to the class (e.g., SomeParameterImpl).
data:
type: string
description: cpp data type to add to the class as a property named "_data".
override_ctor:
type: boolean
description: "True to allow defining a custom constructor, default: false."
override_set:
type: boolean
description:
"True to allow defining a custom set() method, default:
false."
override_validate:
type: boolean
description: "True to allow defining a custom validate() method, default: false."
override_warn_if_deprecated:
type: boolean
description: "True to allow defining a custom warnIfDeprecated() method, default: false."
default:
description: String or expression map representation of the initial value.
oneOf:
- type: string
- type: number
- type: boolean
- type: object
redact:
type: boolean
description: >
Set to true to replace values of this setting with placeholders (e.g., for
passwords). This is a required field and must be explicitly set to false to
disable redaction.
omit_in_ftdc:
type: boolean
description: >
'Only applies to cluster parameters. If set to true, then the cluster parameter
will be omitted when `getClusterParameter` is invoked with `omitInFTDC`: true. In
practice, FTDC runs `getClusterParameter` with this option periodically to collect
configuration metadata about the server and setting this flag to true for a cluster
parameter ensures that its value(s) will not be exposed in FTDC.'
test_only:
type: boolean
description: >
Set to true to disable this set parameter if `enableTestCommands` is not specified.
deprecated_name:
description: >
One or more names which can be used with the specified setting and underlying
storage. Reading or writing a setting using this name will result in a warning in
the server log.
oneOf:
- type: string
- type: array
items:
type: string
minItems: 1
uniqueItems: true
is_deprecated:
type: boolean
description: >
Marks the server parameter as deprecated. Warns users if the server parameter
is ever used. Defaults to false.
annotations:
type: object
description: >
Opaque metadata block attached to the server parameter. Parsed as-is and
exposed at runtime via ServerParameter::annotations() as a BSONObj.
on_update:
type: string
description: >
'C++ callback invoked after all validation rules have completed successfully and
the new value has been stored. Prototype: Status(const cpp_vartype&);'
condition:
type: object
description: >
Up to five conditional rules for deciding whether or not to apply this server
parameter. `preprocessor` will be evaluated first, followed by `constexpr`, then
finally `expr`. If no provided setting evaluates to false, the server parameter
will be registered. `feature_flag` and `min_fcv` are evaluated after the parameter
is registered, and instead affect whether the parameter is enabled. `min_fcv` is
a string of the form X.Y, representing the minimum FCV version for which this
parameter should be enabled. `feature_flag` is the name of a feature flag variable
upon which this server parameter depends -- if the feature flag is disabled,
this parameter will be disabled. `feature_flag` should be removed when all other
instances of that feature flag are deleted, which typically is done after the next
LTS version of the server is branched. `min_fcv` should be removed after it is no
longer possible to downgrade to a FCV lower than that version - this occurs when
the next LTS version of the server is branched.
additionalProperties: false
properties:
expr:
oneOf:
- type: string
- type: boolean
constexpr:
type: string
preprocessor:
type: string
min_fcv:
type: number
feature_flag:
type: string
minProperties: 1
validator:
"$ref": "#/$defs/validator"
required:
- set_at
- description
configs:
description: >
List of config options parsed from the command line as well as YAML and INI config files.
type: object
patternProperties:
"^.*$":
type: object
description: Config option.
additionalProperties: false
properties:
short_name:
type: string
description: Name to use for command line and INI.
single_name:
type: string
description: Name to use for JSON config.
deprecated_name:
description: List or string of deprecated name(s) used for JSON config.
oneOf:
- type: string
- type: array
items:
type: string
minItems: 1
uniqueItems: true
deprecated_short_name:
description:
List or string of deprecated name(s) used for command line
and INI.
oneOf:
- type: string
- type: array
items:
type: string
minItems: 1
uniqueItems: true
description:
description: String or expression for the description for the option.
oneOf:
- type: string
- "$ref": "#/$defs/expression"
section:
type: string
description: Name of the option's section, visible in the '--help' string.
arg_vartype:
type: string
description: >
Type of the option argument (defined in
mongo/util/options_parser/option_description.h) that is supported by OptionsParser.
enum:
- StringVector
- StringMap
- Bool
- Double
- Int
- Long
- String
- UnsignedLongLong
- Unsigned
- Switch
cpp_vartype:
type: string
description: >
Type of the global variable which stores the option. Used with cpp_varname.
cpp_varname:
type: string
description: >
Name of the global variable which stores the option. Used with cpp_vartype.
mod_visibility:
"$ref": "#/$defs/mod_visibility"
condition:
type: object
description: >
Up to three conditional rules for deciding whether or not to apply this config
option. `preprocessor` will be evaluated first, followed by `constexpr`, then
finally `expr`.
additionalProperties: false
properties:
expr:
type: string
constexpr:
type: string
preprocessor:
type: string
conflicts:
description: >
String or string list that defines another option that is incompatible with this one.
oneOf:
- type: string
- type: array
items:
type: string
minItems: 1
uniqueItems: true
requires:
description: >
Specifies another option that this option requires in order to be specified.
oneOf:
- type: string
- type: array
items:
type: string
minItems: 1
uniqueItems: true
hidden:
type: boolean
description: >
If true, this option is hidden so that it does not appear in command line help.
redact:
type: boolean
description: >
If true, marks this option as sensitive so that attempts by a client to read
this setting will only return a placeholder value rather than the real setting.
default:
description: Default value for this option if it is not specified.
oneOf:
- type: string
- type: number
- type: boolean
- "$ref": "#/$defs/expression"
implicit:
description:
Implicit value for this option if it is specified with no
argument.
oneOf:
- type: string
- type: number
- type: boolean
- "$ref": "#/$defs/expression"
source:
description: >
String or list describing where the option came from. Choices ["cli", "ini", "yaml"].
oneOf:
- type: string
enum:
- cli
- ini
- yaml
- type: array
items:
type: string
enum:
- cli
- ini
- yaml
minItems: 1
uniqueItems: true
canonicalize:
type: string
description: Canonicalizer method.
duplicate_behavior:
type: string
description: >
Choice ["append", "overwrite"]. Defaults to "overwite", but "append" will make
different sources add their values instead of overriding.
enum:
- append
- overwrite
positional:
description: >
Specifies the position(s) the option can be found in. Single digit, closed range, or
open range of digits. Ex. "1", "-2", "3-4".
oneOf:
- type: string
- type: integer
validator:
"$ref": "#/$defs/validator"
required:
- description
- arg_vartype
feature_flags:
description: List of feature flags to serialize into C++.
type: object
patternProperties:
"^.*$":
type: object
description: ""
additionalProperties: false
properties:
description:
type: string
description: A comment to add to the generated C++.
cpp_varname:
type: string
description: Declares the underlying variable to use for the feature flag.
mod_visibility:
"$ref": "#/$defs/mod_visibility"
default:
type: boolean
description: >
Feature flags that default to false must not have a version. Feature flags that
default to true and should be FCV gated are required to have a version. Feature
flags that should not be FCV gated must not have a version.
version:
type: number
description: MongoDB version in which the feature flag is introduced.
fcv_gated:
type: boolean
description: Whether or not the feature flag should be FCV gated
enable_on_transitional_fcv_UNSAFE:
type: boolean
description: >
Also enable this feature flag during the transitional FCV state (kUpgrade,
kDowngrade). Can only appear along with fcv_gated: true.
Setting this property should be avoided if possible, and requires careful handling to
avoid compatibility issues with old FCVs and binaries.
See the FCV and Feature Flag README (FCV_AND_FEATURE_FLAG_README.md) for more detail.
incremental_rollout_phase:
type: string
description: >
Set to a value other than the default ('not_for_incremental_rollout') to make an
Incremental Feature Rollout (IFR) feature flag, which can be toggled at runtime. IFR
feature flags are disabled by default when in the 'in_development' phase and enabled
by default in the 'rollout' and 'released' phases. Client software can query a feature
flag's phase using the getParameter command with 'showDetails' enabled. Non-IFR
feature flags must specify an explicit 'default' value.
enum:
- not_for_incremental_rollout
- in_development
- rollout
- released
serialize_on_outgoing_requests:
type: boolean
description: >
If true, this IFR flag's current value will be serialized on outgoing requests
(e.g., to shards) so that remote nodes use the same value as the sender.
Must be paired with 'version' to specify the FCV at which serialization begins.
Only valid on IFR flags (those with an incremental_rollout_phase specified).
check_against_fcv:
type: string
description: >
Specifies whether the feature flag is checked against an Operation FCV
(`VersionContext`), a short-lived server FCV snapshot (`FCVSnapshot`), or both.
This determines the signature of the C++ method used for feature flag checks.
See the FCV and Feature Flag README (FCV_AND_FEATURE_FLAG_README.md) for more detail.
enum:
- operation_fcv_or_fcv_snapshot
- operation_fcv_only
# TODO(SERVER-102615): Remove this value once it's not needed anymore
- legacy_fcv_snapshot_only
required:
- description
- fcv_gated
global:
description: Global settings that affect code generation
type: object
additionalProperties: false
properties:
cpp_namespace:
type: string
description: >
The C++ namespace for all generated classes and enums to belong to. Must start with
mongo.
pattern: "^mongo.*$"
cpp_includes:
description: >
A list of C++ headers to include in the generated .h file. You should not list
generated IDL headers here as includes for them are automatically generated from imports.
oneOf:
- type: array
items:
type: string
uniqueItems: true
- type: string
mod_visibility:
"$ref": "#/$defs/mod_visibility"
configs:
type: object
additionalProperties: false
properties:
source:
oneOf:
- type: string
enum:
- cli
- ini
- yaml
- type: array
items:
type: string
enum:
- cli
- ini
- yaml
minItems: 1
uniqueItems: true
section:
type: string
initializer:
oneOf:
- type: string
- type: object
additionalProperties: false
properties:
register:
type: string
store:
type: string
minItems: 1
uniqueItems: true
unevaluatedProperties: true
imports:
description: >
List of other IDL files that contain enums, types and structs this file refers to.
type: array
items:
type: string
minItems: 1
uniqueItems: true