inkjet.xreg.json with Avro schema → C# AMQP Producer
xrcg generate --language cs --style amqpproducer -d inkjet.xreg.json --output ./output --projectname Inkjet
{
"messagegroups": {
"Fabrikam.InkJetPrinter": {
"envelope": "CloudEvents/1.0",
"description": "Operational events for a Fabrikam inkjet printer",
"messages": {
"Fabrikam.InkJetPrinter.PrintJobStarted": {
"description": "Event for when a print job starts",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"required": true
},
"type": {
"value": "Fabrikam.InkJetPrinter.PrintJobStarted",
"description": "Event raised when a print job is initiated"
},
"source": {
"type": "uritemplate",
"description": "source of the event",
"value": "{tenantid}/{deviceid}"
},
"subject": {
"type": "string",
"description": "identifier of the print job"
},
"time": {
"required": true
}
},
"dataschemaformat": "Avro/1.11.1",
"dataschemauri": "#/schemagroups/Fabrikam.InkJetPrinter/schemas/Fabrikam.InkJetPrinter.PrintJobStartedEventData"
},
"Fabrikam.InkJetPrinter.PrintJobCompleted": {
"description": "Event for when a print job is completed",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"required": true
},
"type": {
"value": "Fabrikam.InkJetPrinter.PrintJobCompleted",
"description": "Event raised when a print job is completed"
},
"source": {
"type": "uritemplate",
"description": "source of the event",
"value": "{tenantid}/{deviceid}"
},
"subject": {
"type": "string",
"description": "identifier of the print job"
},
"time": {
"required": true
}
},
"dataschemaformat": "Avro/1.11.1",
"dataschemauri": "#/schemagroups/Fabrikam.InkJetPrinter/schemas/Fabrikam.InkJetPrinter.PrintJobCompletedEventData"
},
"Fabrikam.InkJetPrinter.InkLow": {
"description": "Event for when ink levels are low",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"required": true
},
"type": {
"value": "Fabrikam.InkJetPrinter.InkLow",
"description": "Event raised when ink levels are detected to be low"
},
"source": {
"type": "uritemplate",
"description": "source of the event",
"value": "{tenantid}/{deviceid}"
},
"subject": {
"type": "string",
"description": "identifier of the affected ink cartridge"
},
"time": {
"required": true
}
},
"dataschemaformat": "Avro/1.11.1",
"dataschemauri": "#/schemagroups/Fabrikam.InkJetPrinter/schemas/Fabrikam.InkJetPrinter.InkLowEventData"
},
"Fabrikam.InkJetPrinter.PaperJam": {
"description": "Event for when a paper jam occurs",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"required": true
},
"type": {
"value": "Fabrikam.InkJetPrinter.PaperJam",
"description": "Event raised when a paper jam is detected"
},
"source": {
"type": "uritemplate",
"description": "source of the event",
"value": "{tenantid}/{deviceid}"
},
"subject": {
"type": "string",
"description": "location of the jam within the printer"
},
"time": {
"required": true
}
},
"dataschemaformat": "Avro/1.11.1",
"dataschemauri": "#/schemagroups/Fabrikam.InkJetPrinter/schemas/Fabrikam.InkJetPrinter.PaperJamEventData"
},
"Fabrikam.InkJetPrinter.MaintenanceRequired": {
"description": "Event for when the printer requires maintenance",
"envelope": "CloudEvents/1.0",
"envelopemetadata": {
"id": {
"required": true
},
"type": {
"value": "Fabrikam.InkJetPrinter.MaintenanceRequired",
"description": "Event raised when maintenance is required for the printer"
},
"source": {
"type": "uritemplate",
"description": "source of the event",
"value": "{tenantid}/{deviceid}"
},
"subject": {
"type": "string",
"description": "type of maintenance required"
},
"time": {
"required": true
}
},
"dataschemaformat": "Avro/1.11.1",
"dataschemauri": "#/schemagroups/Fabrikam.InkJetPrinter/schemas/Fabrikam.InkJetPrinter.MaintenanceRequiredEventData"
}
}
}
},
"schemagroups": {
"Fabrikam.InkJetPrinter": {
"schemas": {
"Fabrikam.InkJetPrinter.PrintJobStartedEventData": {
"format": "Avro/1.11.1",
"defaultversionid": "1",
"versions": {
"1": {
"format": "Avro/1.11.1",
"schema": {
"type": "record",
"name": "PrintJobStartedEventData",
"namespace": "Fabrikam.InkJetPrinter",
"doc": "Data schema for starting a print job",
"fields": [
{
"name": "tenantid",
"doc": "Tenant identifier",
"type": "string"
},
{
"name": "deviceid",
"doc": "Device identifier",
"type": "string"
},
{
"name": "jobId",
"doc": "Unique identifier for the print job",
"type": "string"
},
{
"name": "documentName",
"doc": "Name of the document being printed",
"type": "string"
},
{
"name": "startTime",
"doc": "Timestamp when the print job started",
"type": "string"
}
]
}
}
}
},
"Fabrikam.InkJetPrinter.PrintJobCompletedEventData": {
"format": "Avro/1.11.1",
"defaultversionid": "1",
"versions": {
"1": {
"format": "Avro/1.11.1",
"schema": {
"type": "record",
"name": "PrintJobCompletedEventData",
"namespace": "Fabrikam.InkJetPrinter",
"doc": "Data schema for a completed print job",
"fields": [
{
"name": "tenantid",
"doc": "Tenant identifier",
"type": "string"
},
{
"name": "deviceid",
"doc": "Device identifier",
"type": "string"
},
{
"name": "jobId",
"doc": "Unique identifier for the completed print job",
"type": "string"
},
{
"name": "documentName",
"doc": "Name of the document printed",
"type": "string"
},
{
"name": "completionTime",
"doc": "Timestamp when the print job was completed",
"type": "string"
},
{
"name": "outcome",
"doc": "Outcome of the print job (successful, failed, cancelled)",
"type": {
"type": "enum",
"name": "PrintJobOutcome",
"symbols": [
"Successful",
"Failed",
"Cancelled"
]
}
}
]
}
}
}
},
"Fabrikam.InkJetPrinter.InkLowEventData": {
"format": "Avro/1.11.1",
"defaultversionid": "1",
"versions": {
"1": {
"format": "Avro/1.11.1",
"schema": {
"type": "record",
"name": "InkLowEventData",
"namespace": "Fabrikam.InkJetPrinter",
"doc": "Data schema for low ink level event",
"fields": [
{
"name": "tenantid",
"doc": "Tenant identifier",
"type": "string"
},
{
"name": "deviceid",
"doc": "Device identifier",
"type": "string"
},
{
"name": "cartridgeId",
"doc": "Identifier of the low ink cartridge",
"type": "string"
},
{
"name": "inkColor",
"doc": "Color of the ink that is low",
"type": {
"type": "enum",
"name": "InkColor",
"symbols": [
"Black",
"Cyan",
"Magenta",
"Yellow"
]
}
},
{
"name": "remainingLevel",
"doc": "Remaining ink level percentage",
"type": "int"
}
]
}
}
}
},
"Fabrikam.InkJetPrinter.PaperJamEventData": {
"format": "Avro/1.11.1",
"defaultversionid": "1",
"versions": {
"1": {
"format": "Avro/1.11.1",
"schema": {
"type": "record",
"name": "PaperJamEventData",
"namespace": "Fabrikam.InkJetPrinter",
"doc": "Data schema for a paper jam event",
"fields": [
{
"name": "tenantid",
"doc": "Tenant identifier",
"type": "string"
},
{
"name": "deviceid",
"doc": "Device identifier",
"type": "string"
},
{
"name": "jamLocation",
"doc": "Location within the printer where the jam occurred",
"type": "string"
},
{
"name": "cleared",
"doc": "Whether the jam has been cleared (true/false)",
"type": "boolean"
}
]
}
}
}
},
"Fabrikam.InkJetPrinter.MaintenanceRequiredEventData": {
"format": "Avro/1.11.1",
"defaultversionid": "1",
"versions": {
"1": {
"format": "Avro/1.11.1",
"schema": {
"type": "record",
"name": "MaintenanceRequiredEventData",
"namespace": "Fabrikam.InkJetPrinter",
"doc": "Data schema for maintenance required event",
"fields": [
{
"name": "tenantid",
"doc": "Tenant identifier",
"type": "string"
},
{
"name": "deviceid",
"doc": "Device identifier",
"type": "string"
},
{
"name": "maintenanceType",
"doc": "Type of maintenance required (e.g., 'cleaning', 'mechanical adjustment')",
"type": {
"type": "enum",
"name": "MaintenanceType",
"symbols": [
"Cleaning",
"MechanicalAdjustment"
]
}
},
{
"name": "urgency",
"doc": "Urgency of the maintenance required (e.g., 'immediate', 'routine')",
"type": {
"type": "enum",
"name": "Urgency",
"symbols": [
"Immediate",
"Routine"
]
}
}
]
}
}
}
}
}
}
}
}
Select a file from the tree to view its contents.