Solace Queue Template Meta-Schema

The allowable values in a Solace queue template are controlled by a meta-schema. Review the following meta-schema to understand all of the options available in a Solace queue template.

For more information about creating and updating Solace queue templates, see Creating Solace Queue Templates.

{
    "$id": "https://solace.cloud/schemas/solace/msg-vpn-queue-2-41-0.schema.json",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "Solace queue meta-schema",
    "type": "object",
    "customProperties": {
        "booleanProperty": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": { "const": "boolean" },
                "const": { "type": "boolean" },
                "default": { "type": "boolean" }
            },
            "required": ["type"]
        },
        "integerProperty": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": { "const": "integer" },
                "const": { "type": "integer" },
                "default": { "type": "integer" },
                "maximum": { "type": "integer" },
                "minimum": { "type": "integer" }
            },
            "required": ["type"]
        },
            
        "accessType": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": { "const": "string" },
                "const": {
                    "enum": ["exclusive", "non-exclusive"],
                    "type": "string"
                },
                "default": {
                    "enum": ["exclusive", "non-exclusive"],
                    "type": "string"
                },
                "enum": {
                    "items": {
                        "enum": ["exclusive", "non-exclusive"]
                    },
                    "type": "array",
                    "uniqueItems": true
                }
            },
            "required": ["type"]
        },
            
        "deadMsgQueue": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": { "const": "string" },
                "const": { "type": "string" },
                "default": { "type": "string" },
                "minLength": { "type": "integer" },
                "maxLength": { "type": "integer" },
                "pattern": { "type": "string" },
                "placeholder": { "type": "string" }
            },
            "required": ["type"]
        },
        "eventThreshold": {
            "type": "object",
            "oneOf": [{ "$ref": "#/customProperties/eventThresholdByPercent" }, { "$ref": "#/customProperties/eventThresholdByValue" }]
        },
        
        "eventThresholdByPercent": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": { "const": "object" },
                "additionalProperties": { "const": false },
                "properties": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                        "clearPercent": { "$ref": "#/customProperties/eventThresholdPercentProperty" },
                        "setPercent": { "$ref": "#/customProperties/eventThresholdPercentProperty" }
                    }
                },
                "required": {
                    "type": "array",
                    "uniqueItems": true,
                    "allOf": [{ "contains": { "const": "clearPercent" } }, { "contains": { "const": "setPercent" } }],
                    "items": {
                        "enum": ["clearPercent", "setPercent"]
                    }
                }
            },
            "required": ["type", "additionalProperties", "properties", "required"]
        },
            
        "eventThresholdByValue": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": { "const": "object" },
                "additionalProperties": { "const": false },
                "properties": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                        "clearValue": { "$ref": "#/customProperties/eventThresholdValueProperty" },
                        "setValue": { "$ref": "#/customProperties/eventThresholdValueProperty" }
                    }
                },
                "required": {
                    "type": "array",
                    "uniqueItems": true,
                    "allOf": [{ "contains": { "const": "clearValue" } }, { "contains": { "const": "setValue" } }],
                    "items": {
                        "enum": ["setValue", "clearValue"]
                    }
                }
            },
            "required": ["type", "additionalProperties", "properties", "required"]
        },
            
        "eventThresholdPercentProperty": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": { "const": "integer" },
                "const": { "type": "integer" },
                "default": { "type": "integer" },
                "maximum": { "type": "integer", "maximum": 100, "minimum": 0 },
                "minimum": { "type": "integer", "maximum": 100, "minimum": 0 }
            },
            "required": ["type"]
        },
            
        "eventThresholdValueProperty": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": { "const": "integer" },
                "const": { "type": "integer" },
                "default": { "type": "integer" },
                "maximum": { "type": "integer", "minimum": 0 },
                "minimum": { "type": "integer", "minimum": 0 }
            },
            "required": ["type"]
        },
            
        "queueName": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": { "const": "string" },
                "minLength": { "type": "integer" },
                "maxLength": { "type": "integer" },
                "pattern": { "type": "string" },
                "placeholder": { "type": "string" }
            },
            "required": ["type"]
        },
            
        "rejectMsgToSenderOnDiscardBehavior": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": { "const": "string" },
                "const": {
                    "enum": ["never", "when-queue-enabled", "always"],
                    "type": "string"
                },
                "default": {
                    "enum": ["never", "when-queue-enabled", "always"],
                    "type": "string"
                },
                "enum": {
                    "items": {
                        "enum": ["never", "when-queue-enabled", "always"]
                    },
                    "type": "array",
                    "uniqueItems": true
                }
            },
            "required": ["type"]
        }
    },
    "properties": {
        "additionalProperties": { "const": false },
        "properties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "accessType": { "$ref": "#/customProperties/accessType" },
                "consumerAckPropagationEnabled": { "$ref": "#/customProperties/booleanProperty" },
                "deadMsgQueue": { "$ref": "#/customProperties/deadMsgQueue" },
                "deliveryCountEnabled": { "$ref": "#/customProperties/booleanProperty" },
                "deliveryDelay": { "$ref": "#/customProperties/integerProperty" },
                "eventBindCountThreshold": { "$ref": "#/customProperties/eventThreshold" },
                "eventMsgSpoolUsageThreshold": { "$ref": "#/customProperties/eventThreshold" },
                "eventRejectLowPriorityMsgLimitThreshold": { "$ref": "#/customProperties/eventThreshold" },
                "maxBindCount": { "$ref": "#/customProperties/integerProperty" },
                "maxDeliveredUnackedMsgsPerFlow": { "$ref": "#/customProperties/integerProperty" },
                "maxMsgSize": { "$ref": "#/customProperties/integerProperty" },
                "maxMsgSpoolUsage": { "$ref": "#/customProperties/integerProperty" },
                "maxRedeliveryCount": { "$ref": "#/customProperties/integerProperty" },
                "maxTtl": { "$ref": "#/customProperties/integerProperty" },
                "partitionCount": { "$ref": "#/customProperties/integerProperty" },
                "partitionRebalanceDelay": { "$ref": "#/customProperties/integerProperty" },
                "partitionRebalanceMaxHandoffTime": { "$ref": "#/customProperties/integerProperty" },
                "queueName": { "$ref": "#/customProperties/queueName" },
                "redeliveryDelayEnabled": { "$ref": "#/customProperties/booleanProperty" },
                "redeliveryDelayInitialInterval": { "$ref": "#/customProperties/integerProperty" },
                "redeliveryDelayMaxInterval": { "$ref": "#/customProperties/integerProperty" },
                "redeliveryDelayMultiplier": { "$ref": "#/customProperties/integerProperty" },
                "redeliveryEnabled": { "$ref": "#/customProperties/booleanProperty" },
                "rejectLowPriorityMsgEnabled": { "$ref": "#/customProperties/booleanProperty" },
                "rejectLowPriorityMsgLimit": { "$ref": "#/customProperties/integerProperty" },
                "rejectMsgToSenderOnDiscardBehavior": { "$ref": "#/customProperties/rejectMsgToSenderOnDiscardBehavior" },
                "respectMsgPriorityEnabled": { "$ref": "#/customProperties/booleanProperty" },
                "respectTtlEnabled": { "$ref": "#/customProperties/booleanProperty" }
            },
            "required": ["queueName"]
        },
        "required": {
            "type": "array",
            "uniqueItems": true,
            "allOf": [
                {
                    "contains": { "const": "queueName" }
                }
            ],
            "items": {
                "enum": [
                    "accessType",
                    "consumerAckPropagationEnabled",
                    "deadMsgQueue",
                    "deliveryCountEnabled",
                    "deliveryDelay",
                    "eventBindCountThreshold",
                    "eventMsgSpoolUsageThreshold",
                    "eventRejectLowPriorityMsgLimitThreshold",
                    "maxBindCount",
                    "maxDeliveredUnackedMsgsPerFlow",
                    "maxMsgSize",
                    "maxMsgSpoolUsage",
                    "maxRedeliveryCount",
                    "maxTtl",
                    "partitionCount",
                    "partitionRebalanceDelay",
                    "partitionRebalanceMaxHandoffTime",
                    "queueName",
                    "redeliveryDelayEnabled",
                    "redeliveryDelayInitialInterval",
                    "redeliveryDelayMaxInterval",
                    "redeliveryDelayMultiplier",
                    "redeliveryEnabled",
                    "rejectLowPriorityMsgEnabled",
                    "rejectLowPriorityMsgLimit",
                    "rejectMsgToSenderOnDiscardBehavior",
                    "respectMsgPriorityEnabled",
                    "respectTtlEnabled"
                ]
            }
        }
    },
    "required": ["additionalProperties", "properties", "required"]
}