diff --git a/schema.json b/schema.json new file mode 100644 index 0000000..2a234f4 --- /dev/null +++ b/schema.json @@ -0,0 +1,108 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "roadrunner-amqp", + "type": "object", + "description": "The schema contains all the valid configuration parameters for the AMQP plugin for the roadrunner job system.", + "additionalProperties": false, + "properties": { + "driver": { + "type": "string", + "enum": [ + "amqp" + ] + }, + "config": { + "type": "object", + "additionalProperties": false, + "description": "Configuration for the AMQP driver.", + "properties": { + "priority": { + "$ref": "https://raw.githubusercontent.com/roadrunner-server/jobs/refs/heads/master/schema.json#/definitions/PipelineProperties/priority" + }, + "prefetch": { + "$ref": "https://raw.githubusercontent.com/roadrunner-server/jobs/refs/heads/master/schema.json#/definitions/PipelineProperties/prefetch" + }, + "consume_all": { + "$ref": "https://raw.githubusercontent.com/roadrunner-server/jobs/refs/heads/master/schema.json#/definitions/PipelineProperties/consume_all" + }, + "delete_queue_on_stop": { + "type": "boolean", + "default": false, + "description": "Delete the queue when stopping the pipeline." + }, + "queue": { + "$ref": "https://raw.githubusercontent.com/roadrunner-server/jobs/refs/heads/master/schema.json#/definitions/PipelineProperties/queue" + }, + "exchange": { + "description": "Exchange name", + "type": "string", + "default": "amqp.default" + }, + "redial_timeout": { + "description": "Redial timeout (in seconds). How long to try to reconnect to the AMQP server", + "type": "integer", + "default": 60 + }, + "exchange_durable": { + "description": "Durable exchange (rabbitmq option: https://www.rabbitmq.com/tutorials/amqp-concepts.html#exchanges)", + "type": "boolean", + "default": false + }, + "durable": { + "type": "boolean", + "default": false, + "description": "Whether the queue is durable." + }, + "consumer_id": { + "description": "The consumer_id is identified by a string that is unique and scoped for all consumers on this channel", + "type": "string", + "default": "roadrunner+uuid" + }, + "exchange_auto_delete": { + "description": "Auto-delete (exchange is deleted when last queue is unbound from it): https://www.rabbitmq.com/tutorials/amqp-concepts.html#exchanges", + "type": "boolean", + "default": false + }, + "queue_auto_delete": { + "description": "Auto-delete (queue that has had at least one consumer is deleted when last consumer unsubscribes)", + "type": "boolean", + "default": false + }, + "exchange_type": { + "description": "Exchange type", + "type": "string", + "default": "direct" + }, + "routing_key": { + "description": "Routing key for the queue", + "type": "string" + }, + "exclusive": { + "description": "Declare a queue exclusive at the exchange", + "type": "boolean", + "default": false + }, + "multiple_ack": { + "description": "When multiple is true, this delivery and all prior unacknowledged deliveries on the same channel will be acknowledged. This is useful for batch processing of deliveries", + "type": "boolean", + "default": false + }, + "requeue_on_fail": { + "description": "Use rabbitmq mechanism to requeue the job on fail", + "type": "boolean", + "default": false + }, + "queue_headers": { + "description": "Queue declare args.", + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9._-]+$": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + } +}