{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://www.omg.org/spec/DDS-JSON/20190601/dds-json_qos.schema.json", "title": "DDS-JSON: Building Block QoS", "description": "This schema defines the syntax to represent DDS QoS in JSON.", "definitions": { "destinationOrderKind": { "enum": [ "BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS", "BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS" ], "type": "string" }, "durabilityKind": { "enum": [ "VOLATILE_DURABILITY_QOS", "TRANSIENT_LOCAL_DURABILITY_QOS", "TRANSIENT_DURABILITY_QOS", "PERSISTENT_DURABILITY_QOS" ], "type": "string", "default": "VOLATILE_DURABILITY_QOS" }, "historyKind": { "enum": [ "KEEP_LAST_HISTORY_QOS", "KEEP_ALL_HISTORY_QOS" ], "type": "string", "default": "KEEP_LAST_HISTORY_QOS" }, "livelinessKind": { "enum": [ "AUTOMATIC_LIVELINESS_QOS", "MANUAL_BY_PARTICIPANT_LIVELINESS_QOS", "MANUAL_BY_TOPIC_LIVELINESS_QOS" ], "type": "string", "default": "AUTOMATIC_LIVELINESS_QOS" }, "presentationAccessScopeKind": { "enum": [ "INSTANCE_PRESENTATION_QOS", "TOPIC_PRESENTATION_QOS", "GROUP_PRESENTATION_QOS" ], "type": "string", "default": "INSTANCE_PRESENTATION_QOS" }, "reliabilityKind": { "enum": [ "BEST_EFFORT_RELIABILITY_QOS", "RELIABLE_RELIABILITY_QOS" ], "type": "string" }, "ownershipKind": { "enum": [ "SHARED_OWNERSHIP_QOS", "EXCLUSIVE_OWNERSHIP_QOS" ], "type": "string" }, "elementName": { "type": "string", "pattern": "((::)?[a-zA-Z0-9_.])+" }, "elementNameReference": { "type": "string", "pattern": "((::)?[a-zA-Z0-9_.])+" }, "topicNameFilter": { "type": "string", "pattern": "([a-zA-Z0-9/*_.:])+" }, "nonNegativeInteger_Duration_SEC": { "type": [ "integer", "string" ], "pattern": "DURATION_INFINITY|DURATION_INFINITE_SEC", "minimum": 0, "examples": [ 0, 1, "DURATION_INFINITY", "DURATION_INFINITE_SEC" ] }, "nonNegativeInteger_Duration_NSEC": { "type": [ "integer", "string" ], "pattern": "DURATION_INFINITY|DURATION_INFINITE_NSEC", "minimum": 0, "examples": [ 0, 1, "DURATION_INFINITY", "DURATION_INFINITE_NSEC" ] }, "positiveInteger_UNLIMITED": { "type": [ "integer", "string" ], "pattern": "LENGTH_UNLIMITED", "minimum": 1, "examples": [ 1, 2, "LENGTH_UNLIMITED" ] }, "stringSeq": { "type": "object", "properties": { "element": { "type": "array", "items": { "type": "string" }, "minItems": 0 } } }, "entityFactoryQosPolicy": { "type": "object", "properties": { "autoenable_created_entities": { "type": "boolean", "default": true } } }, "groupDataQosPolicy": { "type": "object", "properties": { "value": { "type": "string" } } }, "ownershipStrengthQosPolicy": { "type": "object", "properties": { "value": { "type": "integer", "minimum": 1 } } }, "topicDataQosPolicy": { "type": "object", "properties": { "value": { "type": "string" } } }, "transportPriorityQosPolicy": { "type": "object", "properties": { "value": { "type": "integer", "minimum": 1 } } }, "userDataQosPolicy": { "type": "object", "properties": { "value": { "type": "string" } } }, "writerDataLifecycleQosPolicy": { "type": "object", "properties": { "autodispose_unregistered_instances": { "type": "boolean", "default": true } } }, "duration": { "type": "object", "properties": { "sec": { "$ref": "#/definitions/nonNegativeInteger_Duration_SEC" }, "nanosec": { "$ref": "#/definitions/nonNegativeInteger_Duration_NSEC" } } }, "deadlineQosPolicy": { "type": "object", "properties": { "period": { "$ref": "#/definitions/duration" } } }, "destinationOrderQosPolicy": { "type": "object", "properties": { "kind": { "$ref": "#/definitions/destinationOrderKind" } } }, "durabilityQosPolicy": { "type": "object", "properties": { "kind": { "$ref": "#/definitions/durabilityKind" } } }, "durabilityServiceQosPolicy": { "type": "object", "properties": { "service_cleanup_delay": { "$ref": "#/definitions/duration" }, "history_kind": { "$ref": "#/definitions/historyKind" }, "max_samples": { "$ref": "#/definitions/positiveInteger_UNLIMITED" }, "max_instances": { "$ref": "#/definitions/positiveInteger_UNLIMITED" }, "max_samples_per_instance": { "$ref": "#/definitions/positiveInteger_UNLIMITED" }, "history_depth": { "type": "integer", "minimum": 1 } } }, "historyQosPolicy": { "type": "object", "properties": { "kind": { "$ref": "#/definitions/historyKind" }, "depth": { "type": "integer", "minimum": 1, "default": 1 } } }, "latencyBudgetQosPolicy": { "type": "object", "properties": { "duration": { "$ref": "#/definitions/duration" } } }, "lifespanQosPolicy": { "type": "object", "properties": { "duration": { "$ref": "#/definitions/duration" } } }, "livelinessQosPolicy": { "type": "object", "properties": { "kind": { "$ref": "#/definitions/livelinessKind" }, "lease_duration": { "$ref": "#/definitions/duration" } } }, "ownershipQosPolicy": { "type": "object", "properties": { "kind": { "$ref": "#/definitions/ownershipKind" } } }, "partitionQosPolicy": { "type": "object", "properties": { "name": { "$ref": "#/definitions/stringSeq" } } }, "presentationQosPolicy": { "type": "object", "properties": { "access_scope": { "$ref": "#/definitions/presentationAccessScopeKind" }, "coherent_access": { "type": "boolean", "default": false }, "ordered_access": { "type": "boolean", "default": false } } }, "readerDataLifecycleQosPolicy": { "type": "object", "properties": { "autopurge_nowriter_samples_delay": { "$ref": "#/definitions/duration" }, "autopurge_disposed_samples_delay": { "$ref": "#/definitions/duration" } } }, "reliabilityQosPolicy": { "type": "object", "properties": { "kind": { "$ref": "#/definitions/reliabilityKind" }, "max_blocking_time": { "$ref": "#/definitions/duration" } } }, "resourceLimitsQosPolicy": { "type": "object", "properties": { "max_samples": { "$ref": "#/definitions/positiveInteger_UNLIMITED" }, "max_instances": { "$ref": "#/definitions/positiveInteger_UNLIMITED" }, "max_samples_per_instance": { "$ref": "#/definitions/positiveInteger_UNLIMITED" }, "initial_samples": { "type": "integer", "minimum": 1 }, "initial_instances": { "type": "integer", "minimum": 1 } } }, "timeBasedFilterQosPolicy": { "type": "object", "properties": { "minimum_separation": { "$ref": "#/definitions/duration" } } }, "datawriterQos": { "properties": { "base_name": { "$ref": "#/definitions/elementNameReference" }, "durability": { "$ref": "#/definitions/durabilityQosPolicy" }, "durability_service": { "$ref": "#/definitions/durabilityServiceQosPolicy" }, "deadline": { "$ref": "#/definitions/deadlineQosPolicy" }, "latency_budget": { "$ref": "#/definitions/latencyBudgetQosPolicy" }, "liveliness": { "$ref": "#/definitions/livelinessQosPolicy" }, "reliability": { "$ref": "#/definitions/reliabilityQosPolicy" }, "destination_order": { "$ref": "#/definitions/destinationOrderQosPolicy" }, "history": { "$ref": "#/definitions/historyQosPolicy" }, "resource_limits": { "$ref": "#/definitions/resourceLimitsQosPolicy" }, "transport_priority": { "$ref": "#/definitions/transportPriorityQosPolicy" }, "lifespan": { "$ref": "#/definitions/lifespanQosPolicy" }, "user_data": { "$ref": "#/definitions/userDataQosPolicy" }, "ownership": { "$ref": "#/definitions/ownershipQosPolicy" }, "ownership_strength": { "$ref": "#/definitions/ownershipStrengthQosPolicy" }, "writer_data_lifecycle": { "$ref": "#/definitions/writerDataLifecycleQosPolicy" } }, "type": "object" }, "datawriterQosNamed": { "allOf": [ { "$ref": "#/definitions/datawriterQos" }, { "properties": { "name": { "$ref": "#/definitions/elementName" }, "topic_filter": { "type": "string" } }, "required": [ "name" ] } ] }, "datawriterQosSeq": { "type": "array", "items": { "$ref": "#/definitions/datawriterQosNamed" }, "additionalItems": false }, "datareaderQos": { "properties": { "base_name": { "$ref": "#/definitions/elementNameReference" }, "durability": { "$ref": "#/definitions/durabilityQosPolicy" }, "deadline": { "$ref": "#/definitions/deadlineQosPolicy" }, "latency_budget": { "$ref": "#/definitions/latencyBudgetQosPolicy" }, "liveliness": { "$ref": "#/definitions/livelinessQosPolicy" }, "reliability": { "$ref": "#/definitions/reliabilityQosPolicy" }, "destination_order": { "$ref": "#/definitions/destinationOrderQosPolicy" }, "history": { "$ref": "#/definitions/historyQosPolicy" }, "resource_limits": { "$ref": "#/definitions/resourceLimitsQosPolicy" }, "user_data": { "$ref": "#/definitions/userDataQosPolicy" }, "ownership": { "$ref": "#/definitions/ownershipQosPolicy" }, "time_based_filter": { "$ref": "#/definitions/timeBasedFilterQosPolicy" }, "reader_data_lifecycle": { "$ref": "#/definitions/readerDataLifecycleQosPolicy" } }, "type": "object" }, "datareaderQosNamed": { "allOf": [ { "$ref": "#/definitions/datareaderQos" }, { "properties": { "name": { "$ref": "#/definitions/elementName" }, "topic_filter": { "type": "string" } }, "required": [ "name" ] } ] }, "datareaderQosSeq": { "type": "array", "items": { "$ref": "#/definitions/datareaderQosNamed" }, "additionalItems": false }, "topicQos": { "properties": { "base_name": { "$ref": "#/definitions/elementNameReference" }, "topic_data": { "$ref": "#/definitions/topicDataQosPolicy" }, "durability": { "$ref": "#/definitions/durabilityQosPolicy" }, "durability_service": { "$ref": "#/definitions/durabilityServiceQosPolicy" }, "deadline": { "$ref": "#/definitions/deadlineQosPolicy" }, "latency_budget": { "$ref": "#/definitions/latencyBudgetQosPolicy" }, "liveliness": { "$ref": "#/definitions/livelinessQosPolicy" }, "reliability": { "$ref": "#/definitions/reliabilityQosPolicy" }, "destination_order": { "$ref": "#/definitions/destinationOrderQosPolicy" }, "history": { "$ref": "#/definitions/historyQosPolicy" }, "resource_limits": { "$ref": "#/definitions/resourceLimitsQosPolicy" }, "transport_priority": { "$ref": "#/definitions/transportPriorityQosPolicy" }, "lifespan": { "$ref": "#/definitions/lifespanQosPolicy" }, "ownership": { "$ref": "#/definitions/ownershipQosPolicy" } }, "type": "object" }, "topicQosNamed": { "allOf": [ { "$ref": "#/definitions/topicQos" }, { "properties": { "name": { "$ref": "#/definitions/elementName" }, "topic_filter": { "type": "string" } }, "required": [ "name" ] } ] }, "topicQosSeq": { "type": "array", "items": { "$ref": "#/definitions/topicQosNamed" }, "additionalItems": false }, "subscriberQos": { "properties": { "base_name": { "$ref": "#/definitions/elementNameReference" }, "presentation": { "$ref": "#/definitions/presentationQosPolicy" }, "partition": { "$ref": "#/definitions/partitionQosPolicy" }, "group_data": { "$ref": "#/definitions/groupDataQosPolicy" }, "entity_factory": { "$ref": "#/definitions/entityFactoryQosPolicy" } }, "type": "object" }, "subscriberQosNamed": { "allOf": [ { "$ref": "#/definitions/subscriberQos" }, { "properties": { "name": { "$ref": "#/definitions/elementName" } }, "required": [ "name" ] } ] }, "subscriberQosSeq": { "type": "array", "items": { "$ref": "#/definitions/subscriberQosNamed" }, "additionalItems": false }, "publisherQos": { "properties": { "base_name": { "$ref": "#/definitions/elementNameReference" }, "presentation": { "$ref": "#/definitions/presentationQosPolicy" }, "partition": { "$ref": "#/definitions/partitionQosPolicy" }, "group_data": { "$ref": "#/definitions/groupDataQosPolicy" }, "entity_factory": { "$ref": "#/definitions/entityFactoryQosPolicy" } }, "type": "object" }, "publisherQosNamed": { "allOf": [ { "$ref": "#/definitions/publisherQos" }, { "properties": { "name": { "$ref": "#/definitions/elementName" } }, "required": [ "name" ] } ] }, "publisherQosSeq": { "type": "array", "items": { "$ref": "#/definitions/publisherQosNamed" }, "additionalItems": false }, "domainparticipantQos": { "properties": { "base_name": { "$ref": "#/definitions/elementNameReference" }, "user_data": { "$ref": "#/definitions/userDataQosPolicy" }, "entity_factory": { "$ref": "#/definitions/entityFactoryQosPolicy" } }, "type": "object" }, "domainparticipantQosNamed": { "allOf": [ { "$ref": "#/definitions/domainparticipantQos" }, { "properties": { "name": { "$ref": "#/definitions/elementName" } }, "required": [ "name" ] } ] }, "domainparticipantQosSeq": { "type": "array", "items": { "$ref": "#/definitions/domainparticipantQosNamed" }, "additionalItems": false }, "qosProfile": { "type": "object", "properties": { "name": { "$ref": "#/definitions/elementName" }, "base_name": { "$ref": "#/definitions/elementNameReference" }, "domain_participant_qos": { "oneOf": [ { "$ref": "#/definitions/domainparticipantQos" }, { "$ref": "#/definitions/domainparticipantQosSeq" } ] }, "topic_qos": { "oneOf": [ { "$ref": "#/definitions/topicQos" }, { "$ref": "#/definitions/topicQosSeq" } ] }, "publisher_qos": { "oneOf": [ { "$ref": "#/definitions/publisherQos" }, { "$ref": "#/definitions/publisherQosSeq" } ] }, "subscriber_qos": { "oneOf": [ { "$ref": "#/definitions/subscriberQos" }, { "$ref": "#/definitions/subscriberQosSeq" } ] }, "datawriter_qos": { "oneOf": [ { "$ref": "#/definitions/datawriterQos" }, { "$ref": "#/definitions/datawriterQosSeq" } ] }, "datareader_qos": { "oneOf": [ { "$ref": "#/definitions/datareaderQos" }, { "$ref": "#/definitions/datareaderQosSeq" } ] } }, "required": [ "name" ], "additionalProperties": false }, "qosLibrary": { "type": "object", "properties": { "name": { "$ref": "#/definitions/elementName" }, "base_name": { "$ref": "#/definitions/elementNameReference" }, "qos_profiles": { "type": "array", "items": { "$ref": "#/definitions/qosProfile" }, "additionalItems": false }, "domain_participant_qos": { "$ref": "#/definitions/domainparticipantQosSeq" }, "topic_qos": { "$ref": "#/definitions/topicQosSeq" }, "publisher_qos": { "$ref": "#/definitions/publisherQosSeq" }, "subscriber_qos": { "$ref": "#/definitions/subscriberQosSeq" }, "datawriter_qos": { "$ref": "#/definitions/datawriterQosSeq" }, "datareader_qos": { "$ref": "#/definitions/datareaderQosSeq" } }, "required": [ "name" ], "additionalProperties": false } }, "type": "object", "properties": { "qos_library": { "$ref": "#/definitions/qosLibrary" } }, "additionalProperties": false }